You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Sergey Chernov (JIRA)" <ji...@apache.org> on 2019/04/18 15:43:00 UTC

[jira] [Created] (HTTPCLIENT-1985) Single version for httpcore, httpclient, httpasyncclient

Sergey Chernov created HTTPCLIENT-1985:
------------------------------------------

             Summary: Single version for httpcore, httpclient, httpasyncclient
                 Key: HTTPCLIENT-1985
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1985
             Project: HttpComponents HttpClient
          Issue Type: Wish
          Components: HttpClient (async), HttpClient (classic)
    Affects Versions: 5.0 Beta4
            Reporter: Sergey Chernov


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 :D

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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org