[ 
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)

Reply via email to