Uploaded image for project: 'Maven Resolver'
  1. Maven Resolver
  2. MRESOLVER-308

HTTP transport showdown

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0-alpha-2, 2.0.0
    • Resolver
    • None

    Description

      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,

      Attachments

        Issue Links

          Activity

            People

              cstamas Tamas Cservenak
              cstamas Tamas Cservenak
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: