You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/07/09 08:49:47 UTC

svn commit: r1801354 - in /maven/plugins/trunk/maven-javadoc-plugin: ./ src/main/java/org/apache/maven/plugin/javadoc/ src/test/java/org/apache/maven/plugin/javadoc/

Author: rfscholte
Date: Sun Jul  9 08:49:46 2017
New Revision: 1801354

URL: http://svn.apache.org/viewvc?rev=1801354&view=rev
Log:
[MJAVADOC-485] Upgrade to commons-lang3
Use own JavadocVersion for comparison

Modified:
    maven/plugins/trunk/maven-javadoc-plugin/pom.xml
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
    maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocVersion.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocJarTest.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java
    maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocVersionTest.java

Modified: maven/plugins/trunk/maven-javadoc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/pom.xml?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/pom.xml Sun Jul  9 08:49:46 2017
@@ -96,6 +96,9 @@ under the License.
       <name>Omair Majid</name>
     </contributor>
     <contributor>
+      <name>Philippe Marschall</name>
+    </contributor>
+    <contributor>
       <name>Richard Sand</name>
     </contributor>
   </contributors>
@@ -193,9 +196,9 @@ under the License.
 
     <!-- misc -->
     <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-      <version>2.6</version>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>3.5</version>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractFixJavadocMojo.java Sun Jul  9 08:49:46 2017
@@ -32,7 +32,7 @@ import com.thoughtworks.qdox.model.Type;
 import com.thoughtworks.qdox.model.TypeVariable;
 import com.thoughtworks.qdox.parser.ParseException;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ClassUtils;
+import org.apache.commons.lang3.ClassUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.artifact.repository.ArtifactRepository;

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java Sun Jul  9 08:49:46 2017
@@ -52,9 +52,12 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
-import org.apache.commons.lang.ClassUtils;
-import org.apache.commons.lang.SystemUtils;
+import org.apache.commons.lang3.ClassUtils;
+import org.apache.commons.lang3.JavaVersion;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.handler.ArtifactHandler;
@@ -248,7 +251,7 @@ public abstract class AbstractJavadocMoj
      *
      * @since 2.1
      */
-    private static final float SINCE_JAVADOC_1_4 = 1.4f;
+    private static final JavadocVersion SINCE_JAVADOC_1_4 = JavadocVersion.parse( "1.4" );
 
     /**
      * For Javadoc options appears since Java 1.4.2.
@@ -258,7 +261,7 @@ public abstract class AbstractJavadocMoj
      *
      * @since 2.1
      */
-    private static final float SINCE_JAVADOC_1_4_2 = 1.42f;
+    private static final JavadocVersion SINCE_JAVADOC_1_4_2 = JavadocVersion.parse( "1.4.2" );
 
     /**
      * For Javadoc options appears since Java 5.0.
@@ -268,7 +271,7 @@ public abstract class AbstractJavadocMoj
      *
      * @since 2.1
      */
-    private static final float SINCE_JAVADOC_1_5 = 1.5f;
+    private static final JavadocVersion SINCE_JAVADOC_1_5 = JavadocVersion.parse( "1.5" );
 
     /**
      * For Javadoc options appears since Java 6.0.
@@ -277,7 +280,7 @@ public abstract class AbstractJavadocMoj
      *
      * @since 2.4
      */
-    private static final float SINCE_JAVADOC_1_6 = 1.6f;
+    private static final JavadocVersion SINCE_JAVADOC_1_6 = JavadocVersion.parse( "1.6" );
 
     /**
      * For Javadoc options appears since Java 8.0.
@@ -286,7 +289,12 @@ public abstract class AbstractJavadocMoj
      *
      * @since 3.0.0
      */
-    private static final float SINCE_JAVADOC_1_8 = 1.8f;
+    private static final JavadocVersion SINCE_JAVADOC_1_8 = JavadocVersion.parse( "1.8" );
+
+    /**
+     * 
+     */
+    private static final JavadocVersion JAVA_VERSION = JavadocVersion.parse( SystemUtils.JAVA_VERSION );
 
     // ----------------------------------------------------------------------
     // Mojo components
@@ -495,9 +503,9 @@ public abstract class AbstractJavadocMoj
     private String javadocVersion;
 
     /**
-     * Version of the Javadoc Tool executable to use as float.
+     * Version of the Javadoc Tool executable to use.
      */
-    private float fJavadocVersion = 0.0f;
+    private JavadocVersion javadocRuntimeVersion;
 
     /**
      * Specifies whether the Javadoc generation should be skipped.
@@ -3632,7 +3640,7 @@ public abstract class AbstractJavadocMoj
         }
         // For Apple's JDK 1.6.x (and older?) on Mac OSX
         // CHECKSTYLE_OFF: MagicNumber
-        else if ( SystemUtils.IS_OS_MAC_OSX && SystemUtils.JAVA_VERSION_FLOAT < 1.7f )
+        else if ( SystemUtils.IS_OS_MAC_OSX && !SystemUtils.isJavaVersionAtLeast( JavaVersion.JAVA_1_7 ) )
         // CHECKSTYLE_ON: MagicNumber
         {
             javadocExe = new File( SystemUtils.getJavaHome() + File.separator + "bin", javadocCommand );
@@ -3674,7 +3682,7 @@ public abstract class AbstractJavadocMoj
     }
 
     /**
-     * Set a new value for <code>fJavadocVersion</code>
+     * Set a new value for <code>javadocRuntimeVersion</code>
      *
      * @param jExecutable not null
      * @throws MavenReportException if not found
@@ -3683,7 +3691,7 @@ public abstract class AbstractJavadocMoj
     private void setFJavadocVersion( File jExecutable )
         throws MavenReportException
     {
-        float jVersion;
+        JavadocVersion jVersion;
         try
         {
             jVersion = JavadocUtil.getJavadocVersion( jExecutable );
@@ -3693,48 +3701,48 @@ public abstract class AbstractJavadocMoj
             if ( getLog().isWarnEnabled() )
             {
                 getLog().warn( "Unable to find the javadoc version: " + e.getMessage() );
-                getLog().warn( "Using the Java version instead of, i.e. " + SystemUtils.JAVA_VERSION_FLOAT );
+                getLog().warn( "Using the Java version instead of, i.e. " + JAVA_VERSION );
             }
-            jVersion = SystemUtils.JAVA_VERSION_FLOAT;
+            jVersion = JAVA_VERSION;
         }
         catch ( CommandLineException e )
         {
             if ( getLog().isWarnEnabled() )
             {
                 getLog().warn( "Unable to find the javadoc version: " + e.getMessage() );
-                getLog().warn( "Using the Java version instead of, i.e. " + SystemUtils.JAVA_VERSION_FLOAT );
+                getLog().warn( "Using the Java version instead of, i.e. " + JAVA_VERSION );
             }
-            jVersion = SystemUtils.JAVA_VERSION_FLOAT;
+            jVersion = JAVA_VERSION;
         }
         catch ( IllegalArgumentException e )
         {
             if ( getLog().isWarnEnabled() )
             {
                 getLog().warn( "Unable to find the javadoc version: " + e.getMessage() );
-                getLog().warn( "Using the Java version instead of, i.e. " + SystemUtils.JAVA_VERSION_FLOAT );
+                getLog().warn( "Using the Java version instead of, i.e. " + JAVA_VERSION );
             }
-            jVersion = SystemUtils.JAVA_VERSION_FLOAT;
+            jVersion = JAVA_VERSION;
         }
 
         if ( StringUtils.isNotEmpty( javadocVersion ) )
         {
             try
             {
-                fJavadocVersion = Float.parseFloat( javadocVersion );
+                javadocRuntimeVersion = JavadocVersion.parse( javadocVersion );
             }
             catch ( NumberFormatException e )
             {
                 throw new MavenReportException( "Unable to parse javadoc version: " + e.getMessage(), e );
             }
 
-            if ( fJavadocVersion != jVersion && getLog().isWarnEnabled() )
+            if ( javadocRuntimeVersion != jVersion && getLog().isWarnEnabled() )
             {
                 getLog().warn( "Are you sure about the <javadocVersion/> parameter? It seems to be " + jVersion );
             }
         }
         else
         {
-            fJavadocVersion = jVersion;
+            javadocRuntimeVersion = jVersion;
         }
     }
 
@@ -3745,9 +3753,9 @@ public abstract class AbstractJavadocMoj
      * @return <code>true</code> if the javadoc version is equal or greater than the
      *         required version
      */
-    private boolean isJavaDocVersionAtLeast( float requiredVersion )
+    private boolean isJavaDocVersionAtLeast( JavadocVersion requiredVersion )
     {
-        return fJavadocVersion >= requiredVersion;
+        return JAVA_VERSION.compareTo( requiredVersion ) >= 0;
     }
 
     /**
@@ -3777,7 +3785,7 @@ public abstract class AbstractJavadocMoj
      * @see #addArgIf(java.util.List, boolean, String)
      * @see #isJavaDocVersionAtLeast(float)
      */
-    private void addArgIf( List<String> arguments, boolean b, String value, float requiredJavaVersion )
+    private void addArgIf( List<String> arguments, boolean b, String value, JavadocVersion requiredJavaVersion )
     {
         if ( b )
         {
@@ -3828,7 +3836,7 @@ public abstract class AbstractJavadocMoj
      * @see #isJavaDocVersionAtLeast(float)
      */
     private void addArgIfNotEmpty( List<String> arguments, String key, String value, boolean repeatKey,
-                                   boolean splitValue, float requiredJavaVersion )
+                                   boolean splitValue, JavadocVersion requiredJavaVersion )
     {
         if ( StringUtils.isNotEmpty( value ) )
         {
@@ -3920,7 +3928,8 @@ public abstract class AbstractJavadocMoj
      * @param requiredJavaVersion the required Java version, for example 1.31f or 1.4f
      * @see #addArgIfNotEmpty(java.util.List, String, String, float, boolean)
      */
-    private void addArgIfNotEmpty( List<String> arguments, String key, String value, float requiredJavaVersion )
+    private void addArgIfNotEmpty( List<String> arguments, String key, String value,
+                                   JavadocVersion requiredJavaVersion )
     {
         addArgIfNotEmpty( arguments, key, value, requiredJavaVersion, false );
     }
@@ -3937,7 +3946,7 @@ public abstract class AbstractJavadocMoj
      * @see #addArgIfNotEmpty(java.util.List, String, String)
      * @see #isJavaDocVersionAtLeast(float)
      */
-    private void addArgIfNotEmpty( List<String> arguments, String key, String value, float requiredJavaVersion,
+    private void addArgIfNotEmpty( List<String> arguments, String key, String value, JavadocVersion requiredJavaVersion,
                                    boolean repeatKey )
     {
         if ( StringUtils.isNotEmpty( value ) )
@@ -4391,7 +4400,7 @@ public abstract class AbstractJavadocMoj
         throws MavenReportException
     {
         File argfileFile;
-        if ( isJavaDocVersionAtLeast( SINCE_JAVADOC_1_4 ) )
+        if ( JAVA_VERSION.compareTo( SINCE_JAVADOC_1_4 ) >= 0 )
         {
             argfileFile = new File( javadocOutputDirectory, ARGFILE_FILE_NAME );
             cmd.createArg().setValue( "@" + ARGFILE_FILE_NAME );
@@ -4780,7 +4789,7 @@ public abstract class AbstractJavadocMoj
 
         if ( sourcetab > 0 )
         {
-            if ( fJavadocVersion == SINCE_JAVADOC_1_4_2 )
+            if ( javadocRuntimeVersion == SINCE_JAVADOC_1_4_2 )
             {
                 addArgIfNotEmpty( arguments, "-linksourcetab", String.valueOf( sourcetab ) );
             }
@@ -5585,7 +5594,7 @@ public abstract class AbstractJavadocMoj
      *         value of the <code>source</code> parameter in the
      *         <code>org.apache.maven.plugins:maven-compiler-plugin</code>
      *         defined in <code>${project.build.plugins}</code> or in <code>${project.build.pluginManagement}</code>,
-     *         or the {@link #fJavadocVersion}, or <code>null</code> if not defined.
+     *         or the {@link #javadocRuntimeVersion}, or <code>null</code> if not defined.
      * @see #detectJavaApiLink
      * @see #javaApiLinks
      * @see #DEFAULT_JAVA_API_LINKS
@@ -5600,13 +5609,13 @@ public abstract class AbstractJavadocMoj
         }
 
         final String pluginId = "org.apache.maven.plugins:maven-compiler-plugin";
-        float sourceVersion = fJavadocVersion;
+        JavadocVersion sourceVersion = javadocRuntimeVersion;
         String sourceConfigured = getPluginParameter( project, pluginId, "source" );
         if ( sourceConfigured != null )
         {
             try
             {
-                sourceVersion = Float.parseFloat( sourceConfigured );
+                sourceVersion = JavadocVersion.parse( sourceConfigured );
             }
             catch ( NumberFormatException e )
             {
@@ -5619,37 +5628,22 @@ public abstract class AbstractJavadocMoj
             getLog().debug( "No maven-compiler-plugin defined in ${build.plugins} or in "
                                 + "${project.build.pluginManagement} for the " + project.getId()
                                 + ". Added Javadoc API link according the javadoc executable version i.e.: "
-                                + fJavadocVersion );
+                                + javadocRuntimeVersion );
         }
 
-        // CHECKSTYLE_OFF: MagicNumber
-        String apiVersion = null;
-        if ( sourceVersion >= 1.3f && sourceVersion < 1.4f )
-        {
-            apiVersion = "1.3";
-        }
-        else if ( sourceVersion >= 1.4f && sourceVersion < 1.5f )
-        {
-            apiVersion = "1.4";
-        }
-        else if ( sourceVersion >= 1.5f && sourceVersion < 1.6f )
+        String apiVersion;
+        
+        Matcher apiMatcher = Pattern.compile( "(1\\.\\d|\\d\\d*)" ).matcher( sourceVersion.toString() );
+        if ( apiMatcher.find() )
         {
-            apiVersion = "1.5";
+            apiVersion = apiMatcher.group( 1 );
         }
-        else if ( sourceVersion >= 1.6f && sourceVersion < 1.7f )
-        {
-            apiVersion = "1.6";
-        }
-        else if ( sourceVersion >= 1.7f && sourceVersion < 1.8f )
-        {
-            apiVersion = "1.7";
-        }
-        else if ( sourceVersion >= 1.8f )
+        else
         {
-            apiVersion = "1.8";
+            apiVersion = null;
         }
+
         String javaApiLink = javaApiLinks.getProperty( "api_" + apiVersion, null );
-        // CHECKSTYLE_ON: MagicNumber
 
         if ( getLog().isDebugEnabled() )
         {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java Sun Jul  9 08:49:46 2017
@@ -19,7 +19,7 @@ package org.apache.maven.plugin.javadoc;
  * under the License.
  */
 
-import org.apache.commons.lang.SystemUtils;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
@@ -576,9 +576,9 @@ public class JavadocUtil
      * @throws CommandLineException if any
      * @throws IllegalArgumentException if no output was found in the command line
      * @throws PatternSyntaxException if the output contains a syntax error in the regular-expression pattern.
-     * @see #parseJavadocVersion(String)
+     * @see #extractJavadocVersion(String)
      */
-    protected static float getJavadocVersion( File javadocExe )
+    protected static JavadocVersion getJavadocVersion( File javadocExe )
         throws IOException, CommandLineException, IllegalArgumentException
     {
         if ( ( javadocExe == null ) || ( !javadocExe.exists() ) || ( !javadocExe.isFile() ) )
@@ -606,11 +606,11 @@ public class JavadocUtil
 
         if ( StringUtils.isNotEmpty( err.getOutput() ) )
         {
-            return parseJavadocVersion( err.getOutput() );
+            return JavadocVersion.parse( extractJavadocVersion( err.getOutput() ) );
         }
         else if ( StringUtils.isNotEmpty( out.getOutput() ) )
         {
-            return parseJavadocVersion( out.getOutput() );
+            return JavadocVersion.parse( extractJavadocVersion( out.getOutput() ) );
         }
 
         throw new IllegalArgumentException( "No output found from the command line 'javadoc -J-version'" );
@@ -652,12 +652,12 @@ public class JavadocUtil
      * </table>
      *
      * @param output for 'javadoc -J-version'
-     * @return the version of the javadoc for the output.
+     * @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
      * <tt>(?s).*?[^a-zA-Z]([0-9]+\\.?[0-9]*)(\\.([0-9]+))?.*</tt>.
      * @throws IllegalArgumentException if the output is null
      */
-    protected static float parseJavadocVersion( String output )
+    protected static String extractJavadocVersion( String output )
         throws IllegalArgumentException
     {
         if ( StringUtils.isEmpty( output ) )
@@ -665,7 +665,7 @@ public class JavadocUtil
             throw new IllegalArgumentException( "The output could not be null." );
         }
 
-        Pattern pattern = Pattern.compile( "(?s).*?[^a-zA-Z]([0-9]+\\.?[0-9]*)(\\.([0-9]+))?.*" );
+        Pattern pattern = Pattern.compile( "(?s).*?[^a-zA-Z](([0-9]+\\.?[0-9]*)(\\.[0-9]+)?).*" );
 
         Matcher matcher = pattern.matcher( output );
         if ( !matcher.matches() )
@@ -674,17 +674,7 @@ public class JavadocUtil
                                               pattern.toString().length() - 1 );
         }
 
-        String version = matcher.group( 3 );
-        if ( version == null )
-        {
-            version = matcher.group( 1 );
-        }
-        else
-        {
-            version = matcher.group( 1 ) + version;
-        }
-
-        return Float.parseFloat( version );
+        return matcher.group( 1 );
     }
 
     /**

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocVersion.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocVersion.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocVersion.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocVersion.java Sun Jul  9 08:49:46 2017
@@ -50,7 +50,8 @@ public class JavadocVersion implements C
      * @param s the version string
      * @return the version wrapped in a JavadocVersion
      */
-    static JavadocVersion parse( String s ) {
+    static JavadocVersion parse( String s ) 
+    {
         return new JavadocVersion( s );
     }
 

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocJarTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocJarTest.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocJarTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocJarTest.java Sun Jul  9 08:49:46 2017
@@ -82,12 +82,12 @@ public class JavadocJarTest
         }
 
         assertTrue( set.contains( "stylesheet.css" ) );
-        float javadocVersion = (Float) getVariableValueFromObject( mojo, "fJavadocVersion" );
-        if ( Float.compare( javadocVersion, 1.7f ) < 0 )
+        JavadocVersion javadocVersion = (JavadocVersion) getVariableValueFromObject( mojo, "javadocRuntimeVersion" );
+        if ( javadocVersion.compareTo( JavadocVersion.parse( "1.7" ) ) < 0 )
         {
             assertTrue( set.contains( "resources/inherit.gif" ) );
         }
-        else if ( Float.compare( javadocVersion, 1.8f ) < 0 )
+        else if ( javadocVersion.compareTo( JavadocVersion.parse( "1.8" ) ) < 0 )
         {
             assertTrue( set.contains( "resources/background.gif" ) /* JDK7 */);
         }

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocReportTest.java Sun Jul  9 08:49:46 2017
@@ -31,7 +31,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.SystemUtils;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.LegacySupport;
@@ -627,11 +627,12 @@ public class JavadocReportTest
         content = readFile( app );
         assertTrue( content.contains( "<img src=\"doc-files/maven-feather.png\" alt=\"Maven\">" ) );
 
-        float javadocVersion = (Float) getVariableValueFromObject( mojo, "fJavadocVersion" );
-        if( Float.compare( 1.8f, javadocVersion ) == 0 )
+        JavadocVersion javadocVersion = (JavadocVersion) getVariableValueFromObject( mojo, "javadocRuntimeVersion" );
+        if( javadocVersion.compareTo( JavadocVersion.parse( "1.8" ) ) >= 0  && javadocVersion.compareTo( JavadocVersion.parse( "9" ) ) < 0)
         {
             // https://bugs.openjdk.java.net/browse/JDK-8032205
-            assertTrue( "This bug appeared in JDK8 and was planned to be fixed in JDK9, see JDK-8032205", new File( apidocs, "resources/test/doc-files/maven-feather.png" ).exists() );
+            assertTrue( "This bug appeared in JDK8 and was planned to be fixed in JDK9, see JDK-8032205",
+                        new File( apidocs, "resources/test/doc-files/maven-feather.png" ).exists() );
         }
         else
         {

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java Sun Jul  9 08:49:46 2017
@@ -30,7 +30,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.PatternSyntaxException;
 
-import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.maven.plugin.javadoc.ProxyServer.AuthAsyncProxyServlet;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Settings;
@@ -55,7 +55,7 @@ public class JavadocUtilTest
         String version = null;
         try
         {
-            JavadocUtil.parseJavadocVersion( version );
+            JavadocUtil.extractJavadocVersion( version );
             assertTrue( "Not catch null", false );
         }
         catch ( IllegalArgumentException e )
@@ -65,56 +65,59 @@ public class JavadocUtilTest
 
         // Sun JDK 1.4
         version = "java full version \"1.4.2_12-b03\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.42f, 0 );
+        assertEquals( "1.4.2", JavadocUtil.extractJavadocVersion( version ) );
 
         // Sun JDK 1.5
         version = "java full version \"1.5.0_07-164\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals(  "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // IBM JDK 1.4
         version = "java full version \"J2RE 1.4.2 IBM Windows 32 build cn1420-20040626\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.42f, 0 );
+        assertEquals( "1.4.2", JavadocUtil.extractJavadocVersion( version ) );
 
         // IBM JDK 1.5
         version = "javadoc version complète de \"J2RE 1.5.0 IBM Windows 32 build pwi32pdev-20070426a\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // IBM JDK 1.5
         version = "J2RE 1.5.0 IBM Windows 32 build pwi32devifx-20070323 (ifix 117674: SR4 + 116644 + 114941 + 116110 + 114881)";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // FreeBSD
         version = "java full version \"diablo-1.5.0-b01\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // BEA
         version = "java full version \"1.5.0_11-b03\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // Other tests
         version = "java full version \"1.5.0_07-164\"" + System.getProperty( "line.separator" );
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
+        
         version = System.getProperty( "line.separator" ) + "java full version \"1.5.0_07-164\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
+        
         version = System.getProperty( "line.separator" ) + "java full version \"1.5.0_07-164\""
             + System.getProperty( "line.separator" );
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ));
+        
         version = "java full" + System.getProperty( "line.separator" ) + " version \"1.5.0_07-164\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"1.99.123-b01\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.99123f, 0 );
+        assertEquals( "1.99.123", JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"1.5.0.07-164\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"1.4\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.4f, 0 );
+        assertEquals( "1.4" , JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"1.A.B_07-164\"";
         try
         {
-            JavadocUtil.parseJavadocVersion( version );
+            JavadocUtil.extractJavadocVersion( version );
             // does not fail since JEP 223 support addition
             //assertTrue( "Not catch wrong pattern", false );
         }
@@ -124,28 +127,31 @@ public class JavadocUtilTest
         }
 
         version = "SCO-UNIX-J2SE-1.5.0_09*FCS-UW714-OSR6*_20061114";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 );
+        assertEquals( "1.5.0", JavadocUtil.extractJavadocVersion( version ) );
 
         // Java 9 EA
         version = "java full version \"9-ea+113\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 );
+        assertEquals( "9", JavadocUtil.extractJavadocVersion( version ) );
 
         // Java 9 EA Jigsaw
         version = "java full version \"9-ea+113-2016-04-14-161743.javare.4852.nc\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 );
+        assertEquals( "9", JavadocUtil.extractJavadocVersion( version ) );
+
+        version = "java version \"9-ea\"";
+        assertEquals( "9", JavadocUtil.extractJavadocVersion( version ) );
 
         // JEP 223 example for future versions
         version = "java full version \"9+100\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 );
+        assertEquals( "9", JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"9.0.1+20\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 9.01f, 0 );
+        assertEquals( "9.0.1", JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"10+100\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 10f, 0 );
+        assertEquals( "10" , JavadocUtil.extractJavadocVersion( version ) );
 
         version = "java full version \"10.0.1+20\"";
-        assertEquals( JavadocUtil.parseJavadocVersion( version ), 10.01f, 0 );
+        assertEquals( "10.0.1" , JavadocUtil.extractJavadocVersion( version ) );
     }
 
     /**

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocVersionTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocVersionTest.java?rev=1801354&r1=1801353&r2=1801354&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocVersionTest.java (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocVersionTest.java Sun Jul  9 08:49:46 2017
@@ -20,6 +20,10 @@ package org.apache.maven.plugin.javadoc;
  */
 
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.junit.Test;
 
@@ -45,4 +49,20 @@ public class JavadocVersionTest
         assertTrue( JavadocVersion.parse( "1.5" ).compareTo( JavadocVersion.parse( "1.4" ) ) > 0 );
         assertTrue( JavadocVersion.parse( "9" ).compareTo( JavadocVersion.parse( "1.8" ) ) > 0 );
     }
+    
+    @Test
+    public void testApiVersion() {
+        Pattern p = Pattern.compile( "(1\\.\\d|\\d\\d*)" );
+        Matcher m = p.matcher( "9" );
+        assertTrue(m.find());
+        assertEquals( "9", m.group( 1 ));
+
+        m = p.matcher( "1.4" );
+        assertTrue(m.find());
+        assertEquals( "1.4", m.group( 1 ));
+
+        m = p.matcher( "1.4.2" );
+        assertTrue(m.find());
+        assertEquals( "1.4", m.group( 1 ));
+    }
 }