[
https://issues.apache.org/jira/browse/CAMEL-11727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16148702#comment-16148702
]
jaikiran pai commented on CAMEL-11727:
--------------------------------------
>> there is at least one API break with
>> org.apache.camel.catalog.maven.TimeoutHttpClientHandler which extends a
>> class which is no more visible org.apache.ivy.util.url.HttpClientHandler
One of the goals of the upcoming Ivy release is to be backward compatible *as
much as possible* with the previous release and not break compatibility with
existing integrations out there. There are cases where we have added certain
new features which has forced us to introduce new constructs and change
existing interfaces/classes (which we felt were internal to Ivy). However,
given that the whole goal of this Ivy release is to revive the project, I'm
willing to undo changes in Ivy in this release, wherever reasonably feasible,
to allow existing integrations to work.
This specific visibility change to
{{org.apache.ivy.util.url.HttpClientHandler}} class, which is an internal
utility class to Ivy, is one such case. Although, it's not meant to be a public
API, if it makes it easier for
{{org.apache.camel.catalog.maven.TimeoutHttpClientHandler}} to consume the
upcoming Ivy release, I'm willing to make that class public again for this
release.
Now having said that, I looked at the code of
{{org.apache.camel.catalog.maven.TimeoutHttpClientHandler}} [1] and it states
that the purpose of this class is:
{code}
A {@link HttpClientHandler} which uses HttpClient for downloading via
http/https and have support for connection timeouts which otherwise is not
supported by default in Apache Ivy.
{code}
Incidentally, the upcoming release of Ivy has a new feature for specifying
timeout constraints and timeouts on resolvers have support in Ivy core and can
be configured by users. More details about it is here[2].
So, when moving to the upcoming Ivy release, it probably is a good idea to use
the new feature instead of extending the internal Ivy class. However, like I
said, I am open to making that class visible again, if it lets the upgrade go
easily. Just let me know.
In a future release, we do plan to have a better handle over what APIs we
expose as public and provide backward compatibility guarantees.
[1]
https://github.com/apache/camel/blob/master/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/TimeoutHttpClientHandler.java
[2] http://ant.apache.org/ivy/history/master/settings/timeout-constraints.html
> Upgrade Groovy to version containing Ivy fixes for cache resolution
> -------------------------------------------------------------------
>
> Key: CAMEL-11727
> URL: https://issues.apache.org/jira/browse/CAMEL-11727
> Project: Camel
> Issue Type: Improvement
> Components: camel-catalog
> Affects Versions: 2.19.1
> Reporter: Aurélien Pupier
>
> the targeted version is not released yet, the goal is to contain the
> following fixes:
> - [GROOVY-8305]
> - [IVY-1566] via [GROOVY-8304]
> there is at least one API break with
> org.apache.camel.catalog.maven.TimeoutHttpClientHandler which extends a class
> which is no more visible org.apache.ivy.util.url.HttpClientHandler
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)