[
https://issues.apache.org/jira/browse/WAGON-606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17276593#comment-17276593
]
Michael Osipov edited comment on WAGON-606 at 2/1/21, 7:23 PM:
---------------------------------------------------------------
[~olegk], thank you for the offer. Before this can be done many things need to
be improved first. The shared module in Wagon HTTP is ill-designed which mixes
Apache HttpClient related code with generic HTTP code, I'd like to drop the
WebDAV Wagon and go w/o Jackrabbit because Jackrabbit provides minimal benefit
here and likely other things. I don't expect me to start anything before the
summer. The current Wagon HTTP is in really good shape because I have invested
a lot of time to fix subtile bugs where a lot of credits goes to you providing
the right approach.
[~res1st], write a list of artifacts to a text file, reproduce the same with
curl and measure time. Then reproduce the same with curl and HTTP/2 and see
whether you see a difference (at all).
bq. I hoped it would be less work to do, if Wagon only supports the re-use of
the connections.
I don't understand why you keep saying that because I have already answered
that HttpClient Wagon always reuses connection unless the sever wants to close
or the idle timeout has expired. If you see anything different then share debug
logs.
bq. Other HTTP/2 features like server push of related artifacts are of couse
more complicated to do.
I consider this nearly impossible with the current setup:
* You need a repo manager which supports this
* The physical transfer goes through many abstraction layers
* Wagon API is not designed to receive a collection of streams when one is
requested
* Maven Resolver would need to be rewritten
* and likely other points
This requires so much time that I don't see this to happen anytime soon.
Server-side push would make it possible to request an artifact and receive its
POM and with checksums for both. Whether there would be a huge improvement, I
don't know.
was (Author: michael-o):
[~olegk], thank you for the offer. Before this can be done many things need to
be improved first. The shared module in Wagon HTTP is ill-designed which mixes
Apache HttpClient related code with generic HTTP code, I'd like to drop the
WebDAV Wagon and use go w/o Jackrabbit because Jackrabbit provides minimal
benefit here and likely other things. I don't expect me to start anything
before the summer. The current Wagon HTTP is in really good shape becuase I
have invested a lot of time to fix subtile bugs where a lot of credits goes to
you providing the right approach.
[~res1st], write a list of artifacts to a text file, reproduce the same with
curl and measure time. Then reproduce the same with curl and HTTP/2 and see
whether you see a difference (at all).
bq. I hoped it would be less work to do, if Wagon only supports the re-use of
the connections.
I don't understand why you keep saying that because I have already answered
that HttpClient Wagon always reuses connection unless the sever wants to close
or the idle timeout has expired. If you see anything different then share debug
logs.
bq. Other HTTP/2 features like server push of related artifacts are of couse
more complicated to do.
I consider this nearly impossible with the current setup:
* You need a repo manager which supports this
* The physical transfer goes through many abstraction layers
* Wagon API is not designed to receive a collection of streams when one is
requested
* Maven Resolver would need to be rewritten
* and likely other points
This requires so much time that I don't see this to happen anytime soon.
Server-side push would make it possible to request an artifact and receive its
POM and with checksums for both. Whether there would be a huge improvement, I
don't know.
> Support HTTP/2
> --------------
>
> Key: WAGON-606
> URL: https://issues.apache.org/jira/browse/WAGON-606
> Project: Maven Wagon
> Issue Type: New Feature
> Components: wagon-http
> Affects Versions: 3.4.2
> Reporter: Ingo Siebert
> Priority: Major
>
> Maven could get a performance boost when downloading and uploading artifacts
> by using HTTP/2.
> The benefit out of the box would be, that the TCP connection is reused for
> all HTTP/2 requests.
>
> As far as I understood, the only thing that must be done is that the Apache
> httpclient dependency must be updated from 4.5 to 5.0.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)