# JEP 517: a client that prefers HTTP/3 against a server that only speaks HTTP/1.1 over TLS (loopback, JDK's own HttpsServer)
# There is no live HTTP/3 server in this transcript: the sandbox has no UDP egress. The API surface is javap output below.
client asked for : HTTP_3
server answered  : HTTP_1_1 200 hello
HTTP_3_URI_ONLY  : java.net.http.HttpConnectTimeoutException: quic handshake timeout

# javap --module java.net.http -public java.net.http.HttpOption 'java.net.http.HttpOption$Http3DiscoveryMode'
Compiled from "HttpOption.java"
public interface java.net.http.HttpOption<T> {
  public static final java.net.http.HttpOption<java.net.http.HttpOption$Http3DiscoveryMode> H3_DISCOVERY;
  public abstract java.lang.String name();
  public abstract java.lang.Class<T> type();
}
Compiled from "HttpOption.java"
public final class java.net.http.HttpOption$Http3DiscoveryMode extends java.lang.Enum<java.net.http.HttpOption$Http3DiscoveryMode> {
  public static final java.net.http.HttpOption$Http3DiscoveryMode ANY;
  public static final java.net.http.HttpOption$Http3DiscoveryMode ALT_SVC;
  public static final java.net.http.HttpOption$Http3DiscoveryMode HTTP_3_URI_ONLY;
  public static java.net.http.HttpOption$Http3DiscoveryMode[] values();
  public static java.net.http.HttpOption$Http3DiscoveryMode valueOf(java.lang.String);
}

# javap ... HttpClient$Version
  public static final java.net.http.HttpClient$Version HTTP_1_1;
  public static final java.net.http.HttpClient$Version HTTP_2;
  public static final java.net.http.HttpClient$Version HTTP_3;
