Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 23 additions & 14 deletions src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -497,9 +497,9 @@ protected static JavaVersion getJavadocVersion(File javadocExe)
Pattern.compile("(?s).*?[^a-zA-Z](([0-9]+\\.?[0-9]*)(\\.[0-9]+)?).*");

/**
* Parse the output for 'javadoc -J-version' and return the javadoc version recognized. <br>
* Here are some output for 'javadoc -J-version' depending the JDK used:
* <table><caption>Output for 'javadoc -J-version' per JDK</caption>
* Parse the output of 'javadoc -J-version' and return the javadoc version recognized. <br>
* Here are some output for 'javadoc -J-version' depending on the JDK used:
* <table><caption>Output of 'javadoc -J-version' per JDK</caption>
* <tr>
* <th>JDK</th>
* <th>Output for 'javadoc -J-version'</th>
Expand Down Expand Up @@ -530,15 +530,20 @@ protected static JavaVersion getJavadocVersion(File javadocExe)
* </tr>
* </table>
*
* @param output for 'javadoc -J-version'
* @param output of 'javadoc -J-version'
* @return the version of the javadoc for the output, only digits and dots
* @throws PatternSyntaxException if the output doesn't match with the output pattern
* @throws PatternSyntaxException if the output doesn't match the output pattern
* {@code (?s).*?[^a-zA-Z]([0-9]+\\.?[0-9]*)(\\.([0-9]+))?.*}.
* @throws IllegalArgumentException if the output is null
* @throws NullPointerException if the output is null
* @throws IllegalArgumentException if the output is empty
*/
protected static String extractJavadocVersion(String output) throws IllegalArgumentException {
if (output == null || output.isEmpty()) {
throw new IllegalArgumentException("The output could not be null.");
protected static String extractJavadocVersion(String output) {
if (output == null) {
throw new NullPointerException("The output cannot be null.");
}

if (output.isEmpty()) {
throw new IllegalArgumentException("The output cannot be empty.");
}

Pattern pattern = EXTRACT_JAVADOC_VERSION_PATTERN;
Expand Down Expand Up @@ -591,14 +596,18 @@ protected static String extractJavadocVersion(String output) throws IllegalArgum
* </table>
*
* @param memory the memory to be parsed, not null.
* @return the memory parsed with a supported unit. If no unit specified in the <code>memory</code> parameter, the
* @return the memory parsed with a supported unit. If no unit is specified in the <code>memory</code> argument, the
* default unit is <code>m</code>. The units <code>g | gb</code> or <code>t | tb</code> will be converted in
* <code>m</code>.
* @throws IllegalArgumentException if the <code>memory</code> parameter is null or doesn't match any pattern.
* @throws NullPointerException if the <code>memory</code> argument is null
* @throws IllegalArgumentException if the <code>memory</code> argument doesn't match any pattern.
*/
protected static String parseJavadocMemory(String memory) throws IllegalArgumentException {
if (memory == null || memory.isEmpty()) {
throw new IllegalArgumentException("The memory could not be null.");
protected static String parseJavadocMemory(String memory) {
if (memory == null) {
throw new NullPointerException("The memory cannot be null.");
}
if (memory.isEmpty()) {
throw new IllegalArgumentException("The memory cannot be empty.");
}

Matcher m0 = PARSE_JAVADOC_MEMORY_PATTERN_0.matcher(memory);
Expand Down
69 changes: 39 additions & 30 deletions src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.PatternSyntaxException;

import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.plugins.javadoc.ProxyServer.AuthAsyncProxyServlet;
Expand All @@ -61,21 +60,31 @@
* @author <a href="mailto:[email protected]">Vincent Siveton</a>
*/
public class JavadocUtilTest extends PlexusTestCase {
/**
* Method to test the javadoc version parsing.
*
*/
public void testParseJavadocVersion() {
String version = null;

public void testParseJavadocVersion_Null() {
try {
JavadocUtil.extractJavadocVersion(version);
JavadocUtil.extractJavadocVersion(null);
fail("Not catch null");
} catch (IllegalArgumentException e) {
assertTrue(true);
} catch (NullPointerException ex) {
assertNotNull(ex.getMessage());
}
}

public void testParseJavadocVersion_EmptyString() {
try {
JavadocUtil.extractJavadocVersion("");
fail("Not catch empty version");
} catch (IllegalArgumentException ex) {
assertNotNull(ex.getMessage());
}
}

/**
* Test the javadoc version parsing.
*/
public void testParseJavadocVersion() {
// Sun JDK 1.4
version = "java full version \"1.4.2_12-b03\"";
String version = "java full version \"1.4.2_12-b03\"";
assertEquals("1.4.2", JavadocUtil.extractJavadocVersion(version));

// Sun JDK 1.5
Expand Down Expand Up @@ -126,15 +135,6 @@ public void testParseJavadocVersion() {
version = "java full version \"1.4\"";
assertEquals("1.4", JavadocUtil.extractJavadocVersion(version));

version = "java full version \"1.A.B_07-164\"";
try {
JavadocUtil.extractJavadocVersion(version);
// does not fail since JEP 223 support addition
// assertTrue( "Not catch wrong pattern", false );
} catch (PatternSyntaxException e) {
assertTrue(true);
}

version = "SCO-UNIX-J2SE-1.5.0_09*FCS-UW714-OSR6*_20061114";
assertEquals("1.5.0", JavadocUtil.extractJavadocVersion(version));

Expand Down Expand Up @@ -163,20 +163,29 @@ public void testParseJavadocVersion() {
assertEquals("10.0.1", JavadocUtil.extractJavadocVersion(version));
}

/**
* Method to test the javadoc memory parsing.
*
*/
public void testParseJavadocMemory() {
String memory = null;
public void testParseJavadocMemory_null() {
try {
JavadocUtil.parseJavadocMemory(memory);
JavadocUtil.parseJavadocMemory(null);
fail("Not catch null");
} catch (IllegalArgumentException e) {
assertTrue(true);
} catch (NullPointerException ex) {
assertNotNull(ex.getMessage());
}
}

public void testParseJavadocMemory_empty() {
try {
JavadocUtil.parseJavadocMemory("");
fail("Not catch null");
} catch (IllegalArgumentException ex) {
assertNotNull(ex.getMessage());
}
}

memory = "128";
/**
* Method to test the javadoc memory parsing.
*/
public void testParseJavadocMemory() {
String memory = "128";
assertEquals(JavadocUtil.parseJavadocMemory(memory), "128m");

memory = "128k";
Expand Down
Loading