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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

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

GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]


Reply | Threaded
Open this post in threaded view
|

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

GitBox
In reply to this post by GitBox

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:
[hidden email]