From 66e99e073b0d2b9a1924e51110eb6e9060d262a2 Mon Sep 17 00:00:00 2001
From: Maarten Mulders Describes a java tool, means a executable available in the jdk. The name of the tool ({@link #getJavaToolName()}) reflects the name of the executable that should exists as an
+ * executable in the jdk, like {@code jarsigner, keytool, javadoc, ...}. An abstract implementation of the {@link JavaTool} named {@link AbstractJavaTool} use the command line API to
+ * execute any user requests of this tool. Using simple dotted expressions to extract the values from an Object instance,
* For example we might want to extract a value like: The implementation supports indexed, nested and mapped properties similar to the JSP way. The implementation supports indexed, nested and mapped properties.
* The implementation supports indexed, nested and mapped properties.
*
* Commandline objects help handling command lines specifying processes to
* execute.
*
* The class can be used to define a command line as nested elements or as a
* helper to define a command line by an application.
* project.build.sourceDirectory
*
(\\w+)\\[(\\d+)\\]
* pattern, i.e. "user.addresses[1].street"(\\w+)\\((.+)\\)
pattern,
* i.e. "user.addresses(myAddress).street"
+ *
*
* @param expression not null expression
* @param root not null object
@@ -170,14 +168,13 @@ public static Object evaluate( @Nonnull String expression, @Nullable Object root
*
*
(\\w+)\\[(\\d+)\\]
* pattern, i.e. "user.addresses[1].street"(\\w+)\\((.+)\\)
pattern, i.e.
* "user.addresses(myAddress).street"
+ *
*
* @param expression not null expression
* @param root not null object
diff --git a/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java b/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
index 060e824e..649c0860 100644
--- a/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
+++ b/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
@@ -29,36 +29,48 @@ public interface MessageBuilder
/**
* Append message content in success style.
* By default, bold green
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder success( Object message );
/**
* Append message content in warning style.
* By default, bold yellow
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder warning( Object message );
/**
* Append message content in failure style.
* By default, bold red
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder failure( Object message );
/**
* Append message content in strong style.
* By default, bold
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder strong( Object message );
/**
* Append message content in mojo style.
* By default, green
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder mojo( Object message );
/**
* Append message content in project style.
* By default, cyan
+ * @param message the message to append
+ * @return the current builder
*/
MessageBuilder project( Object message );
@@ -67,37 +79,55 @@ public interface MessageBuilder
//
/**
* Append content to the message buffer.
+ * @param value the content to append
+ * @param offset the index of the first {@code char} to append
+ * @param len the number of {@code char}s to append
+ * @return the current builder
*/
MessageBuilder a( char[] value, int offset, int len );
/**
* Append content to the message buffer.
+ * @param value the content to append
+ * @return the current builder
*/
MessageBuilder a( char[] value );
/**
* Append content to the message buffer.
+ * @param value the content to append
+ * @param start the starting index of the subsequence to be appended
+ * @param end the end index of the subsequence to be appended
+ * @return the current builder
*/
MessageBuilder a( CharSequence value, int start, int end );
/**
* Append content to the message buffer.
+ * @param value the content to append
+ * @return the current builder
*/
MessageBuilder a( CharSequence value );
/**
* Append content to the message buffer.
+ * @param value the content to append
+ * @return the current builder
*/
MessageBuilder a( Object value );
/**
* Append newline to the message buffer.
+ * @return the current builder
*/
MessageBuilder newline();
/**
* Append formatted content to the buffer.
* @see String#format(String, Object...)
+ * @param pattern a format string
+ * @param args arguments referenced by the format specifiers in the format string.
+ * @return the current builder
*/
MessageBuilder format( String pattern, Object... args );
}
diff --git a/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java b/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
index 090b6a00..e98d2bb6 100644
--- a/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
@@ -104,7 +104,7 @@ private static void doSystemUninstall()
/**
* Enables message color (if JAnsi is available).
- * @param flag
+ * @param flag To enable JANSI
*/
public static void setColorEnabled( boolean flag )
{
@@ -128,6 +128,7 @@ public static void setColorEnabled( boolean flag )
/**
* Is message color enabled: requires JAnsi available (through Maven) and the color has not been disabled.
+ * @return whether colored messages are enabled
*/
public static boolean isColorEnabled()
{
@@ -145,6 +146,7 @@ public static MessageBuilder buffer()
/**
* Create a message buffer with defined String builder.
+ * @param builder Initial content of the message buffer
* @return a new buffer
*/
public static MessageBuilder buffer( StringBuilder builder )
@@ -154,6 +156,7 @@ public static MessageBuilder buffer( StringBuilder builder )
/**
* Create a message buffer with an internal buffer of defined size.
+ * @param size size of the buffer
* @return a new buffer
*/
public static MessageBuilder buffer( int size )
From 69d1d741b9406705f0a0e641ff6e8ea5eaa19c61 Mon Sep 17 00:00:00 2001
From: Maarten Mulders
* <someelement>
- *
* <acommandline executable="/executable/to/run">
@@ -55,8 +54,7 @@
* </acommandline>
* </someelement>
*
* The element someelement
must provide a method
* createAcommandline
which returns an instance of this class.
*
Works in concert with the StreamPumper class to * allow implementations to gain access to the lines being - * "Pumped". - *
- * Please note that implementations of this interface can be expected to be - * called from arbitrary threads and must therefore be threadsafe. + * "Pumped". + *Please note that implementations of this interface can be expected to be + * called from arbitrary threads and must therefore be threadsafe.
* * @author Florin Vancea * @author Paul Julius 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 22826802..738f660d 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 @@ -36,9 +36,9 @@ /** * Abstract implementation of a {@link JavaTool}. * - * @author Tony ChemitReturn the name of the java tool. This is exactly the name (without his extension) of the executable to + * find in the {@code jdk/bin} directory.
+ *For example: {@code jarsigner, keytool, javadoc, ...}
* * @return the name of the java tool. */ @@ -53,13 +52,11 @@ public interface JavaToolExecute the input request and then returns the result of the execution.
+ *If could not create the java tool invocation, a {@link JavaToolException} will be thrown.
+ *If execution fails, then the result will have a none-zero {@link JavaToolResult#getExitCode()} and his * {@link JavaToolResult#getExecutionException()} will be filled with the error, otherwise the exist code will be - * zero. + * zero.
* * @param request the request to perform * @return the result of the tool execution diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java index fa10b33b..5a951ab6 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java @@ -20,13 +20,12 @@ */ /** - * Signals an error during the construction of the command line used to invoke java tool, e.g. illegal invocation - * arguments. - * - * This should not be confused with a failure of the invoked java tool build itself which will be reported by means of a - * non-zero exit code. + *Signals an error during the construction of the command line used to invoke java tool, e.g. illegal invocation + * arguments.
+ *This should not be confused with a failure of the invoked java tool build itself which will be reported by means of a + * non-zero exit code.
* - * @author Tony ChemitGets the value of the {@code systemOutStreamConsumer} field.
+ *This option field if filled is used by the commandline tool to consume system ouput stream of the jarsigner + * command.
* * @return the value of the {@code systemOutStreamConsumer} field. */ StreamConsumer getSystemOutStreamConsumer(); /** - * Gets the value of the {@code systemErrorStreamConsumer} field. - * - * This option field if filled is used by the commandline tool to consume system error stream of the jarsigner - * command. + *Gets the value of the {@code systemErrorStreamConsumer} field.
+ *This option field if filled is used by the commandline tool to consume system error stream of the jarsigner + * command.
* * @return the value of the {@code systemErrorStreamConsumer} field. */ diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolResult.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolResult.java index f3a6a77e..deb830e8 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolResult.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolResult.java @@ -25,7 +25,7 @@ /** * Describes the result of a {@link JavaTool} invocation. * - * @author Tony ChemitUnify quotes in a path for the Bourne Shell.
- * ** BourneShell.quoteOneItem(null) = null * BourneShell.quoteOneItem("") = '' diff --git a/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java b/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java index 04aa6de1..06b7df73 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java @@ -51,7 +51,6 @@ public CmdShell() ** From cmd.exe /? output: *
- * ** If /C or /K is specified, then the remainder of the command line after * the switch is processed as a command line, where the following logic is @@ -74,7 +73,6 @@ public CmdShell() * remove the last quote character on the command line, preserving * any text after the last quote character. *- * ** Always quoting the entire command line, regardless of these conditions * appears to make Windows processes invoke successfully. diff --git a/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java b/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java index 02681086..47ec0dab 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java @@ -28,7 +28,7 @@ /** * Class that abstracts the Shell functionality, - * with subclasses for shells that behave particularly, like
+ * with subclasses for shells that behave particularly, like * *
command.com
Find a Method using the methodKey provided.
+ *Look in the methodMap for an entry. If found, * it'll either be a CACHE_MISS, in which case we * simply give up, or it'll be a Method, in which - * case, we return it. - *
- * If nothing is found, then we must actually go - * and introspect the method from the MethodMap. + * case, we return it. + *If nothing is found, then we must actually go + * and introspect the method from the MethodMap.
* @param name Method name. * @param params Method parameters. * @return The found method. diff --git a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java index 4612b37f..9fc64ca9 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java @@ -47,6 +47,7 @@ import java.nio.charset.CoderResult; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.attribute.FileAttribute; import java.security.SecureRandom; import java.text.DecimalFormat; import java.util.ArrayList; @@ -68,21 +69,21 @@ *html
-- retrievable through {@link #getExtension}There are methods to create a {@link #toFile File from a URL}, copy a * {@link #copyFile File to another File}, * copy a {@link #copyURLToFile URL's contents to a File}, * as well as methods to {@link #deleteDirectory(File) delete} and {@link #cleanDirectory(File) * clean} a directory. - *
- * Common {@link java.io.File} manipulation routines. - * + * + *Common {@link java.io.File} manipulation routines.
+ ** Taken from the commons-utils repo. * Also code from Alexandria's FileUtils. * And from Avalon Excalibur's IO. * And from Ant. + *
* * @author Kevin A. Burton * @author Scott Sanders @@ -1804,8 +1805,7 @@ public static void rename( @Nonnull File from, @Nonnull File to ) } /** - * Create a temporary file in a given directory. - * + *Create a temporary file in a given directory.
*The file denoted by the returned abstract pathname did not * exist before this method was invoked, any subsequent invocation * of this method will yield a different file name.
@@ -1895,7 +1895,7 @@ public abstract static class FilterWrapper * @param encoding the file output encoding (only if wrappers is not empty) * @param wrappers array of {@link FilterWrapper} * @param overwrite if true and wrappers is null or empty, the file will be copied even if - * to.lastModified() < from.lastModified() + * to.lastModified() < from.lastModified() * @throws IOException if an IO error occurs during copying or filtering */ public static void copyFile( @Nonnull File from, @Nonnull File to, @Nullable String encoding, @@ -2144,8 +2144,8 @@ public static boolean isSymbolicLinkForSure( @Nonnull final File file ) * @param target the target * @return the linked file * @throws IOException in case of an error - * @see {@code java.nio.file.Files.createSymbolicLink(Path)} which creates a new - * symbolic link but does not replace existing symbolic links + * @see Files#createSymbolicLink(Path, Path, FileAttribute[]) which creates a new symbolic link but does + * not replace existing symbolic links */ @Nonnull public static File createSymbolicLink( @Nonnull File symlink, @Nonnull File target ) throws IOException diff --git a/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java b/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java index 11f1bdd4..534a4a02 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java +++ b/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java @@ -37,12 +37,12 @@ import java.nio.channels.Channel; /** - * General IO Stream manipulation. + *General IO Stream manipulation.
*
* This class provides static utility methods for input/output operations, particularly buffered
* copying between sources (InputStream
, Reader
, String
and
* byte[]
) and destinations (OutputStream
, Writer
,
- * String
and byte[]
).
+ * String
and byte[]
).
Unless otherwise noted, these copy
methods do not flush or close the
* streams. Often, doing so would require making non-portable assumptions about the streams' origin
@@ -837,7 +837,7 @@ public static boolean contentEquals( @Nonnull final InputStream input1, @Nonnull
// ----------------------------------------------------------------------
/**
- * Closes a {@code Channel} suppressing any {@code IOException}.
+ *
Closes a {@code Channel} suppressing any {@code IOException}.
** Note: The use case justifying this method is a shortcoming of the Java language up to but not including * Java 7. For any code targeting Java 7 or later use of this method is highly discouraged and the @@ -847,7 +847,8 @@ public static boolean contentEquals( @Nonnull final InputStream input1, @Nonnull * {@code finally} block incorrectly by using this method. *
*
- * Example:
+ * Example:
+ *
* // Introduce variables for the resources and initialize them to null. This cannot throw an exception. * Closeable resource1 = null; @@ -921,7 +922,6 @@ public static boolean contentEquals( @Nonnull final InputStream input1, @Nonnull * // } * } *- * * * @param channel The channel to close or {@code null}. * @deprecated use try-with-resources @@ -943,7 +943,7 @@ public static void close( @Nullable Channel channel ) } /** - * Closes an {@code InputStream} suppressing any {@code IOException}. + *
Closes an {@code InputStream} suppressing any {@code IOException}.
** Note: The use case justifying this method is a shortcoming of the Java language up to but not including * Java 7. For any code targeting Java 7 or later use of this method is highly discouraged and the @@ -953,7 +953,8 @@ public static void close( @Nullable Channel channel ) * {@code finally} block incorrectly by using this method. *
*
- * Example:
+ * Example:
+ *
* // Introduce variables for the resources and initialize them to null. This cannot throw an exception. * Closeable resource1 = null; @@ -1027,7 +1028,6 @@ public static void close( @Nullable Channel channel ) * // } * } *- * * * @param inputStream The stream to close or {@code null}. * @deprecated use try-with-resources @@ -1049,7 +1049,7 @@ public static void close( @Nullable InputStream inputStream ) } /** - * Closes an {@code OutputStream} suppressing any {@code IOException}. + *
Closes an {@code OutputStream} suppressing any {@code IOException}.
** Note: The use case justifying this method is a shortcoming of the Java language up to but not including * Java 7. For any code targeting Java 7 or later use of this method is highly discouraged and the @@ -1059,7 +1059,8 @@ public static void close( @Nullable InputStream inputStream ) * {@code finally} block incorrectly by using this method. *
*
- * Example:
+ * Example:
+ *
* // Introduce variables for the resources and initialize them to null. This cannot throw an exception. * Closeable resource1 = null; @@ -1133,7 +1134,6 @@ public static void close( @Nullable InputStream inputStream ) * // } * } *- * * * @param outputStream The stream to close or {@code null}. * @deprecated use try-with-resources @@ -1155,7 +1155,7 @@ public static void close( @Nullable OutputStream outputStream ) } /** - * Closes a {@code Reader} suppressing any {@code IOException}. + *
Closes a {@code Reader} suppressing any {@code IOException}.
** Note: The use case justifying this method is a shortcoming of the Java language up to but not including * Java 7. For any code targeting Java 7 or later use of this method is highly discouraged and the @@ -1165,7 +1165,8 @@ public static void close( @Nullable OutputStream outputStream ) * {@code finally} block incorrectly by using this method. *
*
- * Example:
+ * Example:
+ *
* // Introduce variables for the resources and initialize them to null. This cannot throw an exception. * Closeable resource1 = null; @@ -1239,7 +1240,6 @@ public static void close( @Nullable OutputStream outputStream ) * // } * } *- * * * @param reader The reader to close or {@code null}. * @deprecated use try-with-resources @@ -1261,7 +1261,7 @@ public static void close( @Nullable Reader reader ) } /** - * Closes a {@code Writer} suppressing any {@code IOException}. + *
Closes a {@code Writer} suppressing any {@code IOException}.
** Note: The use case justifying this method is a shortcoming of the Java language up to but not including * Java 7. For any code targeting Java 7 or later use of this method is highly discouraged and the @@ -1271,7 +1271,8 @@ public static void close( @Nullable Reader reader ) * {@code finally} block incorrectly by using this method. *
*
- * Example:
+ * Example:
+ *
* // Introduce variables for the resources and initialize them to null. This cannot throw an exception. * Closeable resource1 = null; @@ -1345,7 +1346,6 @@ public static void close( @Nullable Reader reader ) * // } * } *- * * * @param writer The writer to close or {@code null}. * @deprecated use try-with-resources diff --git a/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java b/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java index 8abff427..bdce10d7 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java +++ b/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java @@ -28,9 +28,9 @@ import javax.annotation.Nonnull; /** - * Describes a match target for SelectorUtils. - * - * Significantly more efficient than using strings, since re-evaluation and re-tokenizing is avoided. + *
Describes a match target for SelectorUtils.
+ *+ * Significantly more efficient than using strings, since re-evaluation and re-tokenizing is avoided.
* * @author Kristian Rosenvold * @deprecated use {@code java.nio.filejava.nio.file.DirectoryStream.FilterChecks these MatchPatterns against a specified string.
+ *Uses far less string tokenization than any of the alternatives.
* * @param name The name to look for * @param isCaseSensitive If the comparison is case sensitive diff --git a/src/main/java/org/apache/maven/shared/utils/io/ScanConductor.java b/src/main/java/org/apache/maven/shared/utils/io/ScanConductor.java index 08d7a1cd..0a0d82d7 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/ScanConductor.java +++ b/src/main/java/org/apache/maven/shared/utils/io/ScanConductor.java @@ -23,12 +23,10 @@ /** *Visitor pattern for the DirectoryScanner. A ScanConductor controls the scanning process.
- * *Create an instance and pass it to * {@link org.apache.maven.shared.utils.io.DirectoryScanner#setScanConductor(ScanConductor)}. * You will get notified about every visited directory and file. You can use the {@link ScanAction} * to control what should happen next.
- * *A ScanConductor might also store own information but users must make sure that the state gets * cleaned between two scan() invocations.
* diff --git a/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java b/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java index b716e7c8..56a43992 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java @@ -73,12 +73,12 @@ private SelectorUtils() } /** - * Tests whether or not a given path matches the start of a given - * pattern up to the first "**". - * + *Tests whether or not a given path matches the start of a given + * pattern up to the first "**".
+ *
* This is not a general purpose test and should only be used if you
* can live with false positives. For example, pattern=**\a
- * and str=b
will yield true
.
+ * and str=b
will yield true
.
null
.
@@ -93,12 +93,11 @@ public static boolean matchPatternStart( String pattern, String str )
}
/**
- * Tests whether or not a given path matches the start of a given
- * pattern up to the first "**".
- *
- * This is not a general purpose test and should only be used if you
+ * Tests whether or not a given path matches the start of a given + * pattern up to the first "**".
+ *This is not a general purpose test and should only be used if you
* can live with false positives. For example, pattern=**\a
- * and str=b
will yield true
.
+ * and str=b
will yield true
.
null
.
diff --git a/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java b/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
index cbc31410..6caa797b 100644
--- a/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
+++ b/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
@@ -30,24 +30,28 @@ public interface LoggerLevelRenderer
/**
* Render a message at DEBUG level.
* @param message the message to render.
+ * @return the formatted message.
*/
String debug( String message );
/**
* Render a message at INFO level.
* @param message the message to render.
+ * @return the formatted message.
*/
String info( String message );
/**
* Render a message at WARNING level.
* @param message the message to render.
+ * @return the formatted message.
*/
String warning( String message );
/**
* Render a message at ERROR level.
* @param message the message to render.
+ * @return the formatted message.
*/
String error( String message );
}
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XmlReaderException.java b/src/main/java/org/apache/maven/shared/utils/xml/XmlReaderException.java
index f1bc0c6f..5ee48a01 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/XmlReaderException.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/XmlReaderException.java
@@ -23,12 +23,11 @@
import java.io.InputStream;
/**
- * The XmlReaderException is thrown by the XmlReader constructors if the charset encoding can not be determined
- * according to the XML 1.0 specification and RFC 3023.
- *
- * The exception returns the unconsumed InputStream to allow the application to do an alternate processing with the
- * stream. Note that the original InputStream given to the XmlReader cannot be used as that one has been already read.
- *
+ * The XmlReaderException is thrown by the XmlReader constructors if the charset encoding can not be determined + * according to the XML 1.0 specification and RFC 3023.
+ *The exception returns the unconsumed InputStream to allow the application to do an alternate processing with the + * stream. Note that the original InputStream given to the XmlReader cannot be used as that one has been already + * read.
* * @author Alejandro Abdelnur * @version revision 1.1 taken on 26/06/2007 from Rome (see https://rome.dev.java.net/source/browse/rome/src/java/com/sun/syndication/io/XmlReaderException.java) @@ -54,10 +53,8 @@ class XmlReaderException private final InputStream is; /** - * Creates an exception instance if the charset encoding could not be determined. - * - * Instances of this exception are thrown by the XmlReader. - * + *Creates an exception instance if the charset encoding could not be determined.
+ *Instances of this exception are thrown by the XmlReader.
* * @param msg message describing the reason for the exception. * @param bomEnc BOM encoding. @@ -71,10 +68,8 @@ class XmlReaderException } /** - * Creates an exception instance if the charset encoding could not be determined. - * - * Instances of this exception are thrown by the XmlReader. - * + *Creates an exception instance if the charset encoding could not be determined.
+ *Instances of this exception are thrown by the XmlReader.
* * @param msg message describing the reason for the exception. * @param ctMime MIME type in the content-type. @@ -98,7 +93,6 @@ class XmlReaderException /** * Returns the BOM encoding found in the InputStream. - * * * @return the BOM encoding, null if none. */ @@ -109,7 +103,6 @@ public String getBomEncoding() /** * Returns the encoding guess based on the first bytes of the InputStream. - * * * @return the encoding guess, null if it couldn't be guessed. */ @@ -120,7 +113,6 @@ public String getXmlGuessEncoding() /** * Returns the encoding found in the XML prolog of the InputStream. - * * * @return the encoding of the XML prolog, null if none. */ @@ -131,7 +123,6 @@ public String getXmlEncoding() /** * Returns the MIME type in the content-type used to attempt determining the encoding. - * * * @return the MIME type in the content-type, null if there was not content-type or the encoding detection did not * involve HTTP. @@ -143,7 +134,6 @@ public String getContentTypeMime() /** * Returns the encoding in the content-type used to attempt determining the encoding. - * * * @return the encoding in the content-type, null if there was not content-type, no encoding in it or the encoding * detection did not involve HTTP. @@ -156,7 +146,6 @@ public String getContentTypeEncoding() /** * Returns the unconsumed InputStream to allow the application to do an alternate encoding detection on the * InputStream. - * * * @return the unconsumed InputStream. */ diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReaderException.java b/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReaderException.java index eeabae53..992b833c 100644 --- a/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReaderException.java +++ b/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReaderException.java @@ -22,13 +22,11 @@ import java.io.InputStream; /** - * The XmlStreamReaderException is thrown by the XmlStreamReader constructors if the charset encoding can not be - * determined according to the XML 1.0 specification and RFC 3023. - * - * The exception returns the unconsumed InputStream to allow the application to do an alternate processing with the + *The XmlStreamReaderException is thrown by the XmlStreamReader constructors if the charset encoding can not be + * determined according to the XML 1.0 specification and RFC 3023.
+ *The exception returns the unconsumed InputStream to allow the application to do an alternate processing with the * stream. Note that the original InputStream given to the XmlStreamReader cannot be used as that one has been already - * read. - *
+ * read. * * @author Alejandro Abdelnur * @version revision 1.1 taken on 26/06/2007 from Rome (see From e061ed255bcd55cb88e9f22e6c728d6db4ca48d5 Mon Sep 17 00:00:00 2001 From: Maarten MuldersCondition that tests the OS type.
- * *This class got copied over from Apache ANT.
* Even the version from plexus-utils was
- * only an ANT fork!
+ * only an ANT fork!
* The last time it got copied was on 2011-08-12
When merging changes please take care of the special * OS_FAMILY handling in this version of Os.java!
* diff --git a/src/main/java/org/apache/maven/shared/utils/PathTool.java b/src/main/java/org/apache/maven/shared/utils/PathTool.java index 28bc3083..2a0b0fe5 100644 --- a/src/main/java/org/apache/maven/shared/utils/PathTool.java +++ b/src/main/java/org/apache/maven/shared/utils/PathTool.java @@ -26,12 +26,13 @@ import javax.annotation.Nullable; /** - * Path tool contains static methods to assist in determining path-related - * information such as relative paths. - * + *Path tool contains static methods to assist in determining path-related + * information such as relative paths.
+ ** This class originally got developed at Apache Anakia and later maintained * in maven-utils of Apache Maven-1. * Some external fixes by Apache Committers have been applied later. + *
*/ public class PathTool { @@ -55,9 +56,9 @@ public PathTool() * file separators. The relative path returned is formed using * forward slashes as it is expected this path is to be used as a * link in a web page (again mimicking Anakia's behavior). - * + *
* This method is thread-safe.
- *
+ *
* PathTool.getRelativePath( null, null ) = "" * PathTool.getRelativePath( null, "/usr/local/java/bin" ) = "" @@ -111,8 +112,7 @@ public static String getRelativePath( @Nullable String basedir, @Nullable String } /** - * This method can calculate the relative path between two pathes on a file system. - *
+ *This method can calculate the relative path between two paths on a file system.
** PathTool.getRelativeFilePath( null, null ) = "" * PathTool.getRelativeFilePath( null, "/usr/local/java/bin" ) = "" diff --git a/src/main/java/org/apache/maven/shared/utils/StringUtils.java b/src/main/java/org/apache/maven/shared/utils/StringUtils.java index b70cdae8..de4a1e88 100644 --- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java @@ -104,7 +104,6 @@ public static String trim( String str ) * * @param str String target to delete whitespace from * @return the String without whitespace - * @throws NullPointerException */ @Nonnull public static String deleteWhitespace( @Nonnull String str ) { @@ -122,7 +121,7 @@ public static String trim( String str ) /** *Checks if a String is non
+ * not empty (null
and is - * not empty (length > 0
).length > 0
). * * @param str the String to check * @return true if the String is non-null, and not length zero @@ -816,7 +815,7 @@ public static String replace( @Nullable String text, @Nullable String repl, @Nul //-------------------------------------------------------------------------- /** - *Center a String in a larger String of size
n
.+ *
Center a String in a larger String of size
* *n
.Uses spaces as the value to buffer the String with. * Equivalent to
@@ -1174,7 +1173,7 @@ else if ( ch < 32 ) * @param str String to repeat * @param repeat number of times to repeat str * @return String with repeated String - * @throws NegativeArraySizeException ifcenter(str, size, " ")
.repeat < 0
+ * @throws NegativeArraySizeException ifrepeat < 0
* @throws NullPointerException if str isnull
*/ @Nonnull public static String repeat( @Nonnull String str, int repeat ) @@ -1979,14 +1978,12 @@ private static void reverseArray( @Nonnull String... array ) //-------------------------------------------------------------------------- /** - * Turn "Now is the time for all good men" into "Now is the time for..." - * - * Specifically: - * - * If str is less than max characters long, return it. + *Turn "Now is the time for all good men" into "Now is the time for..."
+ *Specifically:
+ *If str is less than max characters long, return it. * Else abbreviate it to (substring(str, 0, max-3) + "..."). * If maxWidth is less than 3, throw an IllegalArgumentException. - * In no case will it return a string of length greater than maxWidth. + * In no case will it return a string of length greater than maxWidth.
* * @param s The string to be abbreviated. * @param maxWidth maximum length of result string @@ -1999,12 +1996,13 @@ private static void reverseArray( @Nonnull String... array ) /** * Turn "Now is the time for all good men" into "...is the time for..." - * + ** Works like abbreviate(String, int), but allows you to specify a "left edge" * offset. Note that this left edge is not necessarily going to be the leftmost * character in the result, or the first * character following the ellipses, but it will appear somewhere in the result. * In no case will it return a string of length greater than maxWidth. + *
* * @param s String to abbreviate. * @param offset left edge of source string @@ -2051,8 +2049,9 @@ private static void reverseArray( @Nonnull String... array ) * Compare two strings, and return the portion where they differ. * (More precisely, return the remainder of the second string, * starting from where it's different from the first.) - * - * E.g. strdiff("i am a machine", "i am a robot") -> "robot" + *+ * E.g. strdiff("i am a machine", "i am a robot") → "robot" + *
* * @param s1 The first string. * @param s2 The second string. @@ -2071,7 +2070,7 @@ public static String difference( @Nonnull String s1, @Nonnull String s2 ) /** * Compare two strings, and return the index at which the strings begin to differ. *- * E.g. strdiff("i am a machine", "i am a robot") -> 7 + * E.g. strdiff("i am a machine", "i am a robot") → 7 *
* * @param s1 The first string. @@ -2188,7 +2187,6 @@ public static String interpolate( String text, @Nonnull Map, ?> namespace ) /** * Converts the first character of the given String to lowercase. * This method does not trim spaces! - * * * @param data the String to get it's first character lower-cased. * @return data string with the first character transformed to lowercase @@ -2205,9 +2203,8 @@ public static String interpolate( String text, @Nonnull Map, ?> namespace ) } /** - * Take the input string and un-camel-case it. - * - * 'ThisIsIt' will become 'this-is-it'. + *Take the input string and un-camel-case it.
+ *'ThisIsIt' will become 'this-is-it'.
* * @param view the view * @return deHumped String @@ -2519,7 +2516,6 @@ public static boolean contains( @Nullable String str, @Nullable String searchStr /** *Checks if String ends with a search String, handling
- * *null
.A
* *null
String will returnfalse
.diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java index 5a951ab6..fb9d6946 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java @@ -22,8 +22,8 @@ /** *Signals an error during the construction of the command line used to invoke java tool, e.g. illegal invocation * arguments.
- *This should not be confused with a failure of the invoked java tool build itself which will be reported by means of a - * non-zero exit code.
+ *This should not be confused with a failure of the invoked java tool build itself which will be reported by means + * of a non-zero exit code.
* * @author Tony Chemit * diff --git a/src/main/java/org/apache/maven/shared/utils/io/DirectoryScanner.java b/src/main/java/org/apache/maven/shared/utils/io/DirectoryScanner.java index 5d03525e..bd8bd7d9 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/DirectoryScanner.java +++ b/src/main/java/org/apache/maven/shared/utils/io/DirectoryScanner.java @@ -32,56 +32,62 @@ import javax.annotation.Nullable; /** - * Class for scanning a directory for files/directories which match certain criteria. - * + *Class for scanning a directory for files/directories which match certain criteria.
+ ** These criteria consist of selectors and patterns which have been specified. With the selectors you can select which * files you want to have included. Files which are not selected are excluded. With patterns you can include or exclude * files based on their filename. - *
+ * + ** The idea is simple. A given directory is recursively scanned for all files and directories. Each file/directory is * matched against a set of selectors, including special support for matching against filenames with include and and * exclude patterns. Only files/directories which match at least one pattern of the include pattern list or other file * selector, and don't match any pattern of the exclude pattern list or fail to match against a required selector will * be placed in the list of files/directories found. - *
+ * + ** When no list of include patterns is supplied, "**" will be used, which means that everything will be matched. When no * list of exclude patterns is supplied, an empty list is used, such that nothing will be excluded. When no selectors * are supplied, none are applied. - *
+ * + ** The filename pattern matching is done as follows: The name to be matched is split up in path segments. A path segment * is the name of a directory or file, which is bounded by
+ * + *File.separator
('/' under UNIX, '\' under * Windows). For example, "abc/def/ghi/xyz.java" is split up in the segments "abc", "def","ghi" and "xyz.java". The same * is done for the pattern against which should be matched. - ** The segments of the name and the pattern are then matched against each other. When '**' is used for a path segment in * the pattern, it matches zero or more path segments of the name. - *
+ * + ** There is a special case regarding the use of
+ * + *File.separator
s at the beginning of the pattern and the * string to match:
* When a pattern starts with aFile.separator
, the string to match must also start with a *File.separator
. When a pattern does not start with aFile.separator
, the string to match * may not start with aFile.separator
. When one of these rules is not obeyed, the string will not match. - ** When a name path segment is matched against a pattern path segment, the following special characters can be used:
+ * + *
* '*' matches zero or more characters
* '?' matches one character. - ** Examples: - *
- * "**\*.class" matches all .class files/dirs in a directory tree. - * - * "test\a??.java" matches all files/dirs which start with an 'a', then two more characters and then ".java", in a - * directory called test. - * - * "**" matches everything in a directory tree. - * - * "**\test\**\XYZ*" matches all files/dirs which start with "XYZ" and where there is a parent directory called test - * (e.g. "abc\test\def\ghi\XYZ123"). - * + *
* Case sensitivity may be turned off if necessary. By default, it is turned on. - *
+ * + ** Example of usage: - *
+ * ** String[] includes = { "**\\*.class" }; * String[] excludes = { "modules\\*\\**" }; @@ -98,11 +104,13 @@ * System.out.println( files[i] ); * } *- * + *
* This will scan a directory called test for .class files, but excludes all files in all proper subdirectories of a * directory called "modules" - *
+ * + ** This class must not be used from multiple Threads concurrently! + *
* * @author Arnout J. Kuiper ajkuiper@wxs.nl * @author Magesh Umasankar @@ -295,8 +303,9 @@ public void setFollowSymlinks( final boolean followSymlinks ) /** * Sets the list of include patterns to use. All '/' and '\' characters are replaced by *File.separatorChar
, so the separator used need not match File.separatorChar
.
- *
+ * * When a pattern ends with a '/' or '\', "**" is appended. + *
* * @param includes A list of include patterns. May benull
, indicating that all files should be
* included. If a non-null
list is given, all elements must be non-null
.
@@ -326,8 +335,9 @@ public void setIncludes( final String... includes )
/**
* Sets the list of exclude patterns to use. All '/' and '\' characters are replaced by
* File.separatorChar
, so the separator used need not match File.separatorChar
.
- *
+ * * When a pattern ends with a '/' or '\', "**" is appended. + *
* * @param excludes A list of exclude patterns. May benull
, indicating that no files should be
* excluded. If a non-null
list is given, all elements must be non-null
.
@@ -431,13 +441,15 @@ public void scan()
* a previously captured list of files.
* This method will not look for a changed in content but sole in the
* list of files given.
- *
+ * * The method will compare the given array of file Strings with the result * of the last directory scan. It will execute a {@link #scan()} if no * result of a previous scan could be found. - *
+ * + ** The result of the diff can be queried by the methods * {@link DirectoryScanResult#getFilesAdded()} and {@link DirectoryScanResult#getFilesRemoved()} + *
* * @param oldFiles the list of previously captured files names. * @return the result of the directory scan. diff --git a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java index 9fc64ca9..4d80e180 100644 --- a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java @@ -47,7 +47,6 @@ import java.nio.charset.CoderResult; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.attribute.FileAttribute; import java.security.SecureRandom; import java.text.DecimalFormat; import java.util.ArrayList; @@ -62,13 +61,13 @@ * *Methods exist to retrieve the components of a typical file path. For example
+ * Methods exist to retrieve the components of a typical file path. For example
* /www/hosted/mysite/index.html
, can be broken into:
*
/www/hosted/mysite/index
-- retrievable through {@link #removeExtension}html
-- retrievable through {@link #getExtension}There are methods to create a {@link #toFile File from a URL}, copy a @@ -483,8 +482,8 @@ public static void fileDelete( @Nonnull String fileName ) /** * Given a directory and an array of extensions return an array of compliant files. - *
- * The given extensions should be like "java" and not like ".java". + * + *The given extensions should be like "java" and not like ".java".
* * @param directory the path of the directory * @param extensions an array of expected extensions @@ -689,9 +688,9 @@ public static boolean contentEquals( @Nonnull final File file1, @Nonnull final F /** * Remove extension from a path. E.g. *- * foo.txt --> foo - * a\b\c.jpg --> a\b\c - * a\b\c --> a\b\c + * foo.txt → foo + * a\b\c.jpg → a\b\c + * a\b\c → a\b\c ** * @param filename the path of the file @@ -716,9 +715,9 @@ public static boolean contentEquals( @Nonnull final File file1, @Nonnull final F * Get extension from a path. E.g. * *
- * foo.txt --> "txt" - * a\b\c.jpg --> "jpg" - * a\b\c --> "" + * foo.txt → "txt" + * a\b\c.jpg → "jpg" + * a\b\c → "" ** * @param filename the path of the file @@ -963,13 +962,13 @@ private static void copyStreamToFile( @Nonnull @WillClose final InputStream sour * root. * Eg: *
- * /foo// --> /foo/ - * /foo/./ --> /foo/ - * /foo/../bar --> /bar - * /foo/../bar/ --> /bar/ - * /foo/../bar/../baz --> /baz - * //foo//./bar --> /foo/bar - * /../ --> null + * /foo// → /foo/ + * /foo/./ → /foo/ + * /foo/../bar → /bar + * /foo/../bar/ → /bar/ + * /foo/../bar/../baz → /baz + * //foo//./bar → /foo/bar + * /../ → null ** * @param path the path to normalize @@ -1667,8 +1666,7 @@ else if ( !sourceDirectory.isDirectory() ) /** * Copies an entire directory structure. - * - * Note: + *
Note:
*sourceDirectory
must exist.
@@ -1767,7 +1765,6 @@ else if ( file.isDirectory() )
/**
* Renames a file, even if that involves crossing file system boundaries.
- *
* This will remove to
(if it exists), ensure that
* to
's parent directory exists and move
* from
, which involves deleting from
as
@@ -1859,7 +1856,7 @@ private static int positiveRandom( Random rand )
}
/**
- * If wrappers is null or empty, the file will be copied only if to.lastModified() < from.lastModified()
+ * If wrappers is null or empty, the file will be copied only if to.lastModified() < from.lastModified()
*
* @param from the file to copy
* @param to the destination file
@@ -1887,7 +1884,7 @@ public abstract static class FilterWrapper
}
/**
- * If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if
+ * If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if
* overwrite is true
*
* @param from the file to copy