On Fri, 18 Apr 2025 13:05:24 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

> Hi,
> 
> Please find here a PR for the implementation of JEP [JDK-8291976: HTTP/3 for 
> the HTTP Client API](https://bugs.openjdk.org/browse/JDK-8291976).
> 
> The CSR can be viewed at [JDK-8350588: Implement HTTP/3 for the HTTP Client 
> API](https://bugs.openjdk.org/browse/JDK-8350588)
> 
> 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.

src/java.net.http/share/classes/java/net/http/HttpRequest.java line 357:

> 355:          * @since TBD
> 356:          */
> 357:         public default <T> Builder setOption(HttpRequestOption<T> 
> option, T value) { return this; }

Bikeshed: we usually omit the set prefix for builders.

src/java.net.http/share/classes/java/net/http/HttpResponse.java line 838:

> 836:         /**
> 837:          * Represents a HTTP/3 PushID. PushIds can be shared across
> 838:          * multiple client initiated requests on the same HTTP/3 
> connection.

Is this a marker interface for various kinds of push ids? Otherwise just the 
record is sufficient.

src/java.net.http/share/classes/java/net/http/HttpResponse.java line 937:

> 935:                 HttpRequest initiatingRequest,
> 936:                 HttpRequest pushPromiseRequest,
> 937:                 PushId pushid,

(Warning: I know little about HTTP, my assumptions and thus whole argument may 
be invalid below!)

This feels like users need to use push ids as units of synchronization on this 
handler, such as tracking this with a ConcurrentHashMap.

Is it possible for users to instead provide a `Function<PushId, 
PushPromiseHandler>` in `HttpClient::sendAsync`? I think this might make it 
easier for users as they no longer need to think about concurrency for 
different ids.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2050992217
PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2050991104
PR Review Comment: https://git.openjdk.org/jdk/pull/24751#discussion_r2051001758

Reply via email to