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