Tamas Cservenak opened MRESOLVER-308 and commented
For HTTP protocol resolver currently provides following transports:
- transport-wagon that uses Maven 2.x Wagon, that among other protocols supports HTTP/1.1 as well
- transport-http that uses directly Apache HttpClient 4.x supporting HTTP/1.1 but provides enhancements in form of "checksum strategy" (almost all of remote repositories emit those in headers, sparing one HTTP round-trip)
As we saw, is very easy to outperform these as:
- Maven Central supports HTTP/1.1 but also HTTP/2
- HTTP/3 is on the way as well
An experiment involving Jetty Client far outperformed both of existing transports, most probably due HTTP/2 support.
So, clients we should consider:
- Jetty Client
- OkHTTP
- Java 11 HttpClient
Point is, to invest into something that (ideally) transparently supports HTTP/1.1 and HTTP/2, and more ideal would be if even HTTP/3 would be transparently supported (Jetty 12 works on that). We could then simply compare these implementations, count in pros and cons, and decide where we want to go,
Issue Links:
- MRESOLVER-302 Introduce onSession close
("is blocked by")
- MRESOLVER-384 Support HTTP/2 in maven-resolver-transport-http
("is duplicated by")
Remote Links:
Backported to: 2.0.0-alpha-2
Tamas Cservenak opened MRESOLVER-308 and commented
For HTTP protocol resolver currently provides following transports:
As we saw, is very easy to outperform these as:
An experiment involving Jetty Client far outperformed both of existing transports, most probably due HTTP/2 support.
So, clients we should consider:
Point is, to invest into something that (ideally) transparently supports HTTP/1.1 and HTTP/2, and more ideal would be if even HTTP/3 would be transparently supported (Jetty 12 works on that). We could then simply compare these implementations, count in pros and cons, and decide where we want to go,
Issue Links:
("is blocked by")
("is duplicated by")
Remote Links:
Backported to: 2.0.0-alpha-2