I noticed that there is no support for the cleartext alternative that https://webtide.com/jetty-http2-cleartext-upgrade/ describes. or https://github.com/ops4j/org.ops4j.pax.web/commit/b0ac9e4736573b0fbe9936c76264a7afceb6588a#diff-fdc02770af27596b101e786a52326867 shows that instead falling back to HTTP 1.1 the server connector could still try this trick
I read from https://github.com/bradfitz/http2/issues/59 discussion a valid point why this probably can't be purely activated based on what is in classloader
— Reasons for choosing TLS-only include respect for user's privacy and early measurements showing that new protocols have a higher success rate when done with TLS. This because of the widespread assumption that anything that goes over port 80 is HTTP 1.1 makes some middle-boxes interfere and destroy traffic when instead other protocols are communicated there.
I'd hate creating yet another system property for this one.
— I'd hate creating yet another system property for this one.
System property can wait for someone actually seeing h2c as a problem, because this is supported by Jetty out-of-the-box (https://www.eclipse.org/jetty/documentation/9.3.x/http2-enabling.html) and this is also actually quite crucial when doing TLS offloading https://www.eclipse.org/jetty/documentation/9.4.x/http2-configuring-haproxy.html
On the other hand I can't see the ALPN being set up as per how Jetty does it in it's examples. I get SSL,[http/1.1, ssl, h2, h2-17, h2-16, h2-15, h2-14] instead of SSL,[ssl, alpn, h2, h2-17, http/1.1] that is in the Jetty docs.