[
https://issues.apache.org/jira/browse/MRESOLVER-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17652303#comment-17652303
]
ASF GitHub Bot commented on MRESOLVER-308:
------------------------------------------
rmannibucau commented on PR #231:
URL: https://github.com/apache/maven-resolver/pull/231#issuecomment-1366137758
My 2cts would be that `Java 11 HttpClient` is really worth it since it will,
ultimately, enable to almost drop the resolver transitive stack when we'll be
java >= 11 and go reactive (not need 256 threads to download 256 deps at the
same time) but for the same reason we don't care anymore of WebDAV we shouldn't
care much of http client impls (all but apache one actually?) while we have one
impl which works well enough - even if it requires some system properties, we
have all we need to make it work - I think it is more than sufficient and will
particularly avoid the "don't use in prod until you used it and saw it was
working" which does motivate much to use that.
That said, fact it does not work with `mvnd` should maybe be considered as a
blocker - I consider mvnd as a deliverable of maven so anything targetting mvn
should also target mvnd IMHO.
> HTTP transport showdown
> -----------------------
>
> Key: MRESOLVER-308
> URL: https://issues.apache.org/jira/browse/MRESOLVER-308
> Project: Maven Resolver
> Issue Type: Task
> Components: Resolver
> Reporter: Tamas Cservenak
> Assignee: Tamas Cservenak
> Priority: Major
> Fix For: 1.9.3
>
>
> 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,
--
This message was sent by Atlassian Jira
(v8.20.10#820010)