Uploaded image for project: 'HttpComponents HttpClient'
  1. HttpComponents HttpClient
  2. HTTPCLIENT-1985

Single version for httpcore, httpclient, httpasyncclient



      Probably this topic was discussed in the mailing list, but I could not find it.
      Anyway, the problem is that there is at least three repos with 3 groups of artifacts: core, client, asyncclient, each group has its own version.
      The site instruction says: just import "org.apache.httpcomponents:httpclient:${httpclient.version}" and be happy (simplified).
      But in fact in a complicated project with big count of dependencies including dozens of artifacts, there can easily be a jar hell with incompatible versions of artifacts.

      If you are good with maven, you understand the power of dependencyManagement or even have a spring-boot-dependencies parent https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-dependencies/pom.xml for the project.

      Which version of httpasyncclient should you choose if you already have httpclient of version A and httpcore of version B (that can vary in different modules of the multi-module maven project)?
      You have to find a compatible version with core or update everything. Again, you have to understand all these details or just voodoo unless success (that can break application runtime of course).

      It's hard to imagine how many applications and developers suffered because of it.

      I suppose the main reason for this decision was not to release the artifact that is not updated. But it brings more evil, than good.

      Whatever, I hoped that new generation of the http client will unite all three repos to one with single version. Like kotlin, spring-framework, spring-boot or netty. But it's not.
      Why? It's not yet too late before the client 5 is released.
      I bet spring-boot developers will support this idea

      Sorry, if it was discussed in the mailing lists or if I should post it there. Please let me know what you think.
      Thanks in any case.




            • Assignee:
              seregamorph Sergey Chernov
            • Votes:
              0 Vote for this issue
              5 Start watching this issue


              • Created:

                Time Tracking

                Original Estimate - 96h
                Remaining Estimate - 96h
                Time Spent - Not Specified
                Not Specified