Summary
-------
Add support for JEP 244: TLS Application-Layer Protocol Negotiation Extension in Java SE 8.
Problem
-------
APIs to support a Transport Layer Security (TLS) feature called Application Layer Protocol Negotiation (ALPN) [1] were introduced in Java SE 9 under JEP 244 (JDK-8051498). Customers have requested ALPN in Java SE 8 to support features like HTTP/2.
To preserve compatibility with newer platform releases, the Java SE 9 ALPN APIs will be backported to Java SE 8.
[1] https://tools.ietf.org/html/rfc7301
Solution
--------
Backport the Java SE 9 ALPN APIs.
There are two API bugs to be backported:
APIs:
JDK-8144093: JEP 244/8051498 - TLS Application-Layer Protocol Negotiation Extension
JDK-8170282: Enable ALPN parameters to be supplied during the TLS handshake
Specification
-------------
See the attached webrev for full details. I am including all non-trivial changes to the API files, which include:
1. A short javadoc narrative on using the new methods.
2. Several new fields/methods were added.