jdk
jdk copied to clipboard
8349910: Implement JEP 517: HTTP/3 for the HTTP Client API
Hi,
Please find here a PR for the implementation of JEP 517: HTTP/3 for the HTTP Client API.
The CSR can be viewed at JDK-8350588: Implement JEP 517: HTTP/3 for the HTTP Client API
This JEP proposes to enhance the HttpClient implementation to support HTTP/3. It adds a non-exposed / non-exported internal implementation of the QUIC protocol based on DatagramChannel and the SunJSSE SSLContext provider.
Progress
- [ ] Change must be properly reviewed (1 review required, with at least 1 Reviewer)
- [x] Change must not contain extraneous whitespace
- [x] Commit message must refer to an issue
- [ ] Change requires CSR request JDK-8350588 to be approved
Issues
- JDK-8349910: Implement JEP 517: HTTP/3 for the HTTP Client API (Enhancement - P3)
- JDK-8350588: Implement JEP 517: HTTP/3 for the HTTP Client API (CSR)
Contributors
- Aleksei Efimov
<[email protected]> - Bradford Wetmore
<[email protected]> - Daniel Jeliński
<[email protected]> - Darragh Clarke
<[email protected]> - Jaikiran Pai
<[email protected]> - Michael McMahon
<[email protected]> - Volkan Yazici
<[email protected]> - Conor Cleary
<[email protected]> - Patrick Concannon
<[email protected]> - Rahul Yadav
<[email protected]> - Daniel Fuchs
<[email protected]>
Reviewing
Using git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/24751/head:pull/24751
$ git checkout pull/24751
Update a local copy of the PR:
$ git checkout pull/24751
$ git pull https://git.openjdk.org/jdk.git pull/24751/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 24751
View PR using the GUI difftool:
$ git pr show -t 24751
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/24751.diff
Using Webrev
:wave: Welcome back dfuchs! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.
@dfuch This change now passes all automated pre-integration checks.
ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.
After integration, the commit message for the final commit will be:
8349910: Implement JEP 517: HTTP/3 for the HTTP Client API
Co-authored-by: Aleksei Efimov <[email protected]>
Co-authored-by: Bradford Wetmore <[email protected]>
Co-authored-by: Daniel Jeliński <[email protected]>
Co-authored-by: Darragh Clarke <[email protected]>
Co-authored-by: Jaikiran Pai <[email protected]>
Co-authored-by: Michael McMahon <[email protected]>
Co-authored-by: Volkan Yazici <[email protected]>
Co-authored-by: Conor Cleary <[email protected]>
Co-authored-by: Patrick Concannon <[email protected]>
Co-authored-by: Rahul Yadav <[email protected]>
Co-authored-by: Daniel Fuchs <[email protected]>
Reviewed-by: djelinski, jpai, aefimov, abarashev, michaelm
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.
At the time when this comment was updated there had been 18 new commits pushed to the master branch:
- f10fbe1fb40645633b91fad2af3d7c2cbb005b39: 8368072: Remove redundant arguments of MarkingNMethodClosure
- 258fcf9f5ea089891f0119bbf8058da389f72321: 8367987: Memory leak in MemBaseline: Must delete _vma_allocations
- 682fd7846c9a6f80c399c7e44f3fccb9a07c6c47: 8366678: Use JUnit in test/langtools/tools/javac
- ... and 15 more: https://git.openjdk.org/jdk/compare/54206943a1715083a680f8c987b69f2e44e948c1...master
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.
⚠️ @dfuch This pull request contains merges that bring in commits not present in the target repository. Since this is not a "merge style" pull request, these changes will be squashed when this pull request in integrated. If this is your intention, then please ignore this message. If you want to preserve the commit structure, you must change the title of this pull request to Merge <project>:<branch> where <project> is the name of another project in the OpenJDK organization (for example Merge jdk:master).
@dfuch The following labels will be automatically applied to this pull request:
core-libsnetsecurity
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.
Webrevs
- 18: Full (797d797c)
- 17: Full (5409bdeb)
- 16: Full (9acc3590)
- 15: Full (3925afda)
- 14: Full (976561a5)
- 13: Full (719f471d)
- 12: Full (e0aa68c9)
- 11: Full (83f8dad1)
- 10: Full (f0a4fd3d)
- 09: Full (9d67d4a6)
- 08: Full (0229c215)
- 07: Full (d4984d5e)
- 06: Full (a5a0c7f8)
- 05: Full (a41217f0)
- 04: Full (8c27f53c)
- 03: Full (9156a51e)
- 02: Full (dfa26044)
- 01: Full (4da61bbe)
- 00: Full (9c2da664)
We would need a unit test testing QUIC signature schemes against jdk.tls.disabledAlgorithms and jdk.certpath.disabledAlgorithms algorithm constraints in java.security file. Those are currently being ignored as far as I can tell.
@dfuch this pull request can not be integrated into master due to one or more merge conflicts. To resolve these merge conflicts and update this pull request you can run the following commands in the local repository for your personal fork:
git checkout http3
git fetch https://git.openjdk.org/jdk.git master
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge master"
git push
The PR has been updated with the following API doc changes:
-
rename HttpRequestOption into HttpOption and make it a top level class.
-
move Http3DiscoveryMode as an inner class in HttpOption
-
improve the paragraph that talks about version selection in the HttpClient class-level impl note.
-
improve the API documentation of the various Builder.version and HttpClient.version methods, adding links to the above paragraph
The CSR has not been updated yet - but an API documentation of the java.net.http module including these changes can be seen here
/contributor add aefimov
@dfuch
Contributor Aleksei Efimov <[email protected]> successfully added.
/contributor add wetmore
@dfuch
Contributor Bradford Wetmore <[email protected]> successfully added.
/contributor add djelinski
@dfuch
Contributor Daniel Jeliński <[email protected]> successfully added.
/contributor add dclarke
@dfuch
Contributor Darragh Clarke <[email protected]> successfully added.
/contributor add jpai
@dfuch
Contributor Jaikiran Pai <[email protected]> successfully added.
/contributor add michaelm
@dfuch
Contributor Michael McMahon <[email protected]> successfully added.
/contributor add vyazici
/contributor add Conor Cleary [email protected]
@dfuch
Contributor Volkan Yazici <[email protected]> successfully added.
@dfuch
Contributor Conor Cleary <[email protected]> successfully added.
/contributor add Patrick Concannon [email protected]
/contributor add Rahul Yadav [email protected]
@dfuch
Contributor Patrick Concannon <[email protected]> successfully added.
@dfuch
Contributor Rahul Yadav <[email protected]> successfully added.
/contributor add dfuchs
@dfuch
Contributor Daniel Fuchs <[email protected]> successfully added.