You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by GitBox <gi...@apache.org> on 2020/07/26 13:38:11 UTC

[GitHub] [maven-javadoc-plugin] anthonyvdotbe opened a new pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

anthonyvdotbe opened a new pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51


   This allows to build with a JDK for which the plugin does not contain a `java-api-element-list-XX` file yet.
   
   ## what
   When building with a JDK version XX, for which the plugin does not contain a `java-api-element-list-XX` file yet, the plugin falls back to downloading the element-list from the actual `javaApiLink`.
   
   ## how
   n/a
   
   ## why
   Otherwise [this `if` statement](https://github.com/apache/maven-javadoc-plugin/blob/master/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java#L6410) is false, no `api-element-list` file is copied, the error from [MJAVADOC-623](https://issues.apache.org/jira/browse/MJAVADOC-623) occurs, and the Javadoc doesn't contain any links.
   
   ## checklist
   
   Following this checklist to help us incorporate your 
   contribution quickly and easily:
   
    - [x] Make sure there is a [JIRA issue](https://issues.apache.org/jira/browse/MJAVADOC) filed 
          for the change (usually before you start working on it).  Trivial changes like typos do not 
          require a JIRA issue.  Your pull request should address just this issue, without 
          pulling in other changes.
    - [x] Each commit in the pull request should have a meaningful subject line and body.
    - [x] Format the pull request title like `[MJAVADOC-XXX] - Fixes bug in ApproximateQuantiles`,
          where you replace `MJAVADOC-XXX` with the appropriate JIRA issue. Best practice
          is to use the JIRA issue title in the pull request title and in the first line of the 
          commit message.
    - [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
    - [x] Run `mvn clean verify -Prun-its` to make sure basic checks pass. A more thorough check will 
          be performed on your pull request automatically.
   
   If your pull request is about ~20 lines of code you don't need to sign an
   [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf) if you are unsure
   please ask on the developers list.
   
   To make clear that you license your contribution under 
   the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   you have to acknowledge this by using the following check-box.
   
    - [x] I hereby declare this contribution to be licenced under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   
    - [ ] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] rfscholte commented on pull request #51: [MJAVADOC-623] - Add element-list for JDK 15

Posted by GitBox <gi...@apache.org>.
rfscholte commented on pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#issuecomment-667533805


   Merged with https://github.com/apache/maven-javadoc-plugin/commit/7a1b7fb5175c8ca39374a38fc91553ac4561877d


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] anthonyvdotbe commented on pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
anthonyvdotbe commented on pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#issuecomment-667521453


   Ok, I updated the PR.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] rfscholte commented on pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
rfscholte commented on pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#issuecomment-667512265


   There's no need for any fallback. Let's ignore 16-ea, at a certain moment there will be a 16-ea that contains the automatic linking.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] anthonyvdotbe commented on pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
anthonyvdotbe commented on pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#issuecomment-667252299


   There are 2 changes in `AbstractJavadocMojo.java` to improve the case where the element-list is not embedded in the plugin:
   1. fall back to the URL `javaApiLink + "element-list"`. This allows the plugin to work, regardless of which `element-list` files are embedded
   2. log an error message and return `null`. This fixes the reported issue properly
   
   W.r.t. `better use InputStream ASAP, not via a URL`: I believe the current patch is cleaner, since otherwise you'd need the same logic twice, once in case the embedded file is used, and once in case the fallback is used.
   
   More generally, why are you against these changes? Once the plugin is updated to use the JDK mechanism instead, this whole method will be deleted anyway. And until then, it allows the plugin to work with EA builds of JDK 16.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] anthonyvdotbe commented on a change in pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
anthonyvdotbe commented on a change in pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#discussion_r460534974



##########
File path: src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
##########
@@ -6407,20 +6410,41 @@ else if ( javaApiversion.asMajor().isAtLeast( "9" ) )
         link.setUrl( javaApiLink );
 
         InputStream in = this.getClass().getResourceAsStream( resourceName );
-        if ( in != null )
+        if ( in == null )
         {
-            try ( InputStream closableIS = in )
+            String elementListLink = javaApiLink + "element-list";
+            try
             {
-                // TODO only copy when changed
-                Files.copy( closableIS, javaApiListFile, StandardCopyOption.REPLACE_EXISTING );
+                URL elementListUrl = new URL( elementListLink );
+                String elementListContent = (String) elementListUrl.getContent( new Class<?>[] { String.class } );
+                if ( elementListContent != null )
+                {
+                    in = new ByteArrayInputStream( elementListContent.getBytes( UTF_8 ) );

Review comment:
       Thanks for the review, that's much better indeed.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] rfscholte closed pull request #51: [MJAVADOC-623] - Add element-list for JDK 15

Posted by GitBox <gi...@apache.org>.
rfscholte closed pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] rfscholte commented on pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
rfscholte commented on pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#issuecomment-667224984


   Please revert all changes of `AbstractJavadocMojo.java`, better use `InputStream` ASAP, not via a URL.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [maven-javadoc-plugin] eolivelli commented on a change in pull request #51: [MJAVADOC-623] - Fall back to downloading element-list

Posted by GitBox <gi...@apache.org>.
eolivelli commented on a change in pull request #51:
URL: https://github.com/apache/maven-javadoc-plugin/pull/51#discussion_r460533503



##########
File path: src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
##########
@@ -6407,20 +6410,41 @@ else if ( javaApiversion.asMajor().isAtLeast( "9" ) )
         link.setUrl( javaApiLink );
 
         InputStream in = this.getClass().getResourceAsStream( resourceName );
-        if ( in != null )
+        if ( in == null )
         {
-            try ( InputStream closableIS = in )
+            String elementListLink = javaApiLink + "element-list";
+            try
             {
-                // TODO only copy when changed
-                Files.copy( closableIS, javaApiListFile, StandardCopyOption.REPLACE_EXISTING );
+                URL elementListUrl = new URL( elementListLink );
+                String elementListContent = (String) elementListUrl.getContent( new Class<?>[] { String.class } );
+                if ( elementListContent != null )
+                {
+                    in = new ByteArrayInputStream( elementListContent.getBytes( UTF_8 ) );

Review comment:
       Why are you creating one String and one byte[] ?
   What about simply assigning `is` to `elementListUrl.getInputStream` ?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org