Author: hboutemy Date: Sun Apr 17 07:46:07 2016 New Revision: 1739549 URL: http://svn.apache.org/viewvc?rev=1739549&view=rev Log: [MJAVADOC-442] Support JEP 223 new Java 9 version scheme
Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugin/javadoc/JavadocUtilTest.java 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=1739549&r1=1739548&r2=1739549&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 Apr 17 07:46:07 2016 @@ -654,7 +654,7 @@ public class JavadocUtil * @param output for 'javadoc -J-version' * @return the version of the javadoc for the output. * @throws PatternSyntaxException if the output doesn't match with the output pattern - * <tt>(?s).*?([0-9]+\\.[0-9]+)(\\.([0-9]+))?.*</tt>. + * <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 ) @@ -665,7 +665,7 @@ public class JavadocUtil throw new IllegalArgumentException( "The output could not be null." ); } - Pattern pattern = Pattern.compile( "(?s).*?([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() ) 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=1739549&r1=1739548&r2=1739549&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 Apr 17 07:46:07 2016 @@ -115,7 +115,8 @@ public class JavadocUtilTest try { JavadocUtil.parseJavadocVersion( version ); - assertTrue( "Not catch wrong pattern", false ); + // does not fail since JEP 223 support addition + //assertTrue( "Not catch wrong pattern", false ); } catch ( PatternSyntaxException e ) { @@ -124,6 +125,27 @@ public class JavadocUtilTest version = "SCO-UNIX-J2SE-1.5.0_09*FCS-UW714-OSR6*_20061114"; assertEquals( JavadocUtil.parseJavadocVersion( version ), 1.5f, 0 ); + + // Java 9 EA + version = "java full version \"9-ea+113\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 ); + + // Java 9 EA Jigsaw + version = "java full version \"9-ea+113-2016-04-14-161743.javare.4852.nc\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 ); + + // JEP 223 example for future versions + version = "java full version \"9+100\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 9f, 0 ); + + version = "java full version \"9.0.1+20\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 9.01f, 0 ); + + version = "java full version \"10+100\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 10f, 0 ); + + version = "java full version \"10.0.1+20\""; + assertEquals( JavadocUtil.parseJavadocVersion( version ), 10.01f, 0 ); } /**