diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml index 5f47f9dc5731..eb198048e42b 100644 --- a/apache-maven/pom.xml +++ b/apache-maven/pom.xml @@ -98,8 +98,8 @@ under the License. maven-slf4j-provider - org.fusesource.jansi - jansi + org.jline + jline diff --git a/apache-maven/src/main/appended-resources/licenses/unrecognized-jline-3.25.0.txt b/apache-maven/src/main/appended-resources/licenses/unrecognized-jline-3.25.0.txt new file mode 100644 index 000000000000..b62fe457163c --- /dev/null +++ b/apache-maven/src/main/appended-resources/licenses/unrecognized-jline-3.25.0.txt @@ -0,0 +1,35 @@ +Copyright (c) 2002-2023, the original author or authors. +All rights reserved. + +https://opensource.org/licenses/BSD-3-Clause + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with +the distribution. + +Neither the name of JLine nor the names of its contributors +may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java index d00ad8d95451..8a996032e2a5 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java @@ -26,7 +26,7 @@ * @since 4.0.0 * @see MessageBuilderFactory */ -public interface MessageBuilder { +public interface MessageBuilder extends Appendable { /** * Append message content in trace style. @@ -36,7 +36,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder trace(Object message); + default MessageBuilder trace(Object message) { + return style(".trace:-bold,f:magenta", message); + } /** * Append message content in debug style. @@ -46,7 +48,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder debug(Object message); + default MessageBuilder debug(Object message) { + return style(".debug:-bold,f:cyan", message); + } /** * Append message content in info style. @@ -56,7 +60,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder info(Object message); + default MessageBuilder info(Object message) { + return style(".info:-bold,f:blue", message); + } /** * Append message content in warning style. @@ -66,7 +72,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder warning(Object message); + default MessageBuilder warning(Object message) { + return style(".warning:-bold,f:yellow", message); + } /** * Append message content in error style. @@ -76,7 +84,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder error(Object message); + default MessageBuilder error(Object message) { + return style(".error:-bold,f:red", message); + } /** * Append message content in success style. @@ -86,7 +96,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder success(Object message); + default MessageBuilder success(Object message) { + return style(".success:-bold,f:green", message); + } /** * Append message content in failure style. @@ -96,7 +108,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder failure(Object message); + default MessageBuilder failure(Object message) { + return style(".failure:-bold,f:red", message); + } /** * Append message content in strong style. @@ -106,7 +120,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder strong(Object message); + default MessageBuilder strong(Object message) { + return style(".strong:-bold", message); + } /** * Append message content in mojo style. @@ -116,7 +132,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder mojo(Object message); + default MessageBuilder mojo(Object message) { + return style(".mojo:-f:green", message); + } /** * Append message content in project style. @@ -126,11 +144,35 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder project(Object message); + default MessageBuilder project(Object message) { + return style(".project:-f:cyan", message); + } + + @Nonnull + default MessageBuilder style(String style, Object message) { + return style(style).a(message).resetStyle(); + } + + MessageBuilder style(String style); + + MessageBuilder resetStyle(); // // message building methods modelled after Ansi methods // + + @Nonnull + @Override + MessageBuilder append(CharSequence cs); + + @Nonnull + @Override + MessageBuilder append(CharSequence cs, int start, int end); + + @Nonnull + @Override + MessageBuilder append(char c); + /** * Append content to the message buffer. * @@ -140,7 +182,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder a(char[] value, int offset, int len); + default MessageBuilder a(char[] value, int offset, int len) { + return append(String.valueOf(value, offset, len)); + } /** * Append content to the message buffer. @@ -149,7 +193,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder a(char[] value); + default MessageBuilder a(char[] value) { + return append(String.valueOf(value)); + } /** * Append content to the message buffer. @@ -160,7 +206,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder a(CharSequence value, int start, int end); + default MessageBuilder a(CharSequence value, int start, int end) { + return append(value, start, end); + } /** * Append content to the message buffer. @@ -169,7 +217,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder a(CharSequence value); + default MessageBuilder a(CharSequence value) { + return append(value); + } /** * Append content to the message buffer. @@ -178,7 +228,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder a(Object value); + default MessageBuilder a(Object value) { + return append(String.valueOf(value)); + } /** * Append newline to the message buffer. @@ -186,7 +238,9 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder newline(); + default MessageBuilder newline() { + return append(System.lineSeparator()); + } /** * Append formatted content to the buffer. @@ -197,20 +251,23 @@ public interface MessageBuilder { * @return the current builder */ @Nonnull - MessageBuilder format(String pattern, Object... args); + default MessageBuilder format(String pattern, Object... args) { + return append(String.format(pattern, args)); + } /** - * Return the built message. + * Set the buffer length. * - * @return the message + * @param length the new length + * @return the current builder */ - @Nonnull - String build(); + MessageBuilder setLength(int length); /** - * Set the buffer length. + * Return the built message. * - * @param length the new length + * @return the message */ - void setLength(int length); + @Nonnull + String build(); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilderFactory.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilderFactory.java index ac4691ecfbfd..9a595ae11095 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilderFactory.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilderFactory.java @@ -48,21 +48,11 @@ public interface MessageBuilderFactory extends Service { @Nonnull MessageBuilder builder(); - /** - * Creates a new message builder backed by the given string builder. - * @param stringBuilder a string builder - * @return a new message builder - */ - @Nonnull - MessageBuilder builder(@Nonnull StringBuilder stringBuilder); - /** * Creates a new message builder of the specified size. * @param size the initial size of the message builder buffer * @return a new message builder */ @Nonnull - default MessageBuilder builder(int size) { - return builder(new StringBuilder(size)); - } + MessageBuilder builder(int size); } diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilder.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilder.java index 08f28d9553b9..692b1e37e549 100644 --- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilder.java +++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilder.java @@ -36,111 +36,36 @@ public DefaultMessageBuilder(StringBuilder buffer) { } @Override - @Nonnull - public MessageBuilder trace(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder debug(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder info(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder warning(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder error(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder success(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder failure(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder strong(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder mojo(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder project(Object o) { - return a(o); - } - - @Override - @Nonnull - public MessageBuilder a(char[] chars, int i, int i1) { - buffer.append(chars, i, i1); - return this; - } - - @Override - @Nonnull - public MessageBuilder a(char[] chars) { - buffer.append(chars); + public MessageBuilder style(String style) { return this; } @Override - @Nonnull - public MessageBuilder a(CharSequence charSequence, int i, int i1) { - buffer.append(charSequence, i, i1); + public MessageBuilder resetStyle() { return this; } @Override - @Nonnull - public MessageBuilder a(CharSequence charSequence) { - buffer.append(charSequence); + public MessageBuilder append(CharSequence cs) { + buffer.append(cs); return this; } @Override - @Nonnull - public MessageBuilder a(Object o) { - buffer.append(o); + public MessageBuilder append(CharSequence cs, int start, int end) { + buffer.append(cs, start, end); return this; } @Override - @Nonnull - public MessageBuilder newline() { - buffer.append(System.getProperty("line.separator")); + public MessageBuilder append(char c) { + buffer.append(c); return this; } @Override - @Nonnull - public MessageBuilder format(String s, Object... objects) { - buffer.append(String.format(s, objects)); + public MessageBuilder setLength(int length) { + buffer.setLength(length); return this; } @@ -154,9 +79,4 @@ public String build() { public String toString() { return build(); } - - @Override - public void setLength(int length) { - buffer.setLength(length); - } } diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilderFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilderFactory.java index ea4c94f49247..bb2f6c982e7e 100644 --- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilderFactory.java +++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultMessageBuilderFactory.java @@ -22,8 +22,6 @@ import javax.inject.Named; import javax.inject.Singleton; -import java.util.Objects; - import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.services.MessageBuilder; @@ -57,7 +55,7 @@ public MessageBuilder builder() { @Override @Nonnull - public MessageBuilder builder(@Nonnull StringBuilder stringBuilder) { - return new DefaultMessageBuilder(Objects.requireNonNull(stringBuilder)); + public MessageBuilder builder(int size) { + return new DefaultMessageBuilder(new StringBuilder(size)); } } diff --git a/maven-core/src/main/resources/META-INF/maven/extension.xml b/maven-core/src/main/resources/META-INF/maven/extension.xml index 1823336d837c..8a87ea31f39e 100644 --- a/maven-core/src/main/resources/META-INF/maven/extension.xml +++ b/maven-core/src/main/resources/META-INF/maven/extension.xml @@ -99,6 +99,10 @@ under the License. org.codehaus.plexus.logging org.codehaus.plexus.personality + + org.codehaus.plexus.components.interactivity + org.fusesource.jansi.Ansi + javax.inject.*