You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Sergey Beryozkin <sb...@gmail.com> on 2012/12/13 13:01:48 UTC

When to move JAX-RS Client implementation to the new module

Hi,

I've opened CXF-4696 [1] to get the client implementation moved out of 
jax-rs frontend to its own module: to get the main module smaller, to 
let users avoid downloading extra baggage when no client code is 
utilized and in preparation for implementing JAX-RS 2.0 API (though I'm 
keen on keeping supporting WebClient API, with Proxy API having no 
challenge from 2.0 API :-))

I thought I'd wait till CXF 2.8.0-SNAPSHOT but then started changing my 
mind, the reason is that CXF 2.7.x users can expect minor dependency 
changes during the lifetime of CXF 2.7.x anyway, for example, 
jsr339-api-m10 dep will get replaced soon enough by jsr339-api-m13 - 
this for the most parts will be limited just to it, to the dependency 
update.

Moving the client code to its own module will affect 2.7.x users exactly 
the same way, at some point, say, when migrating to CXF 2.7.2, they will 
need to add a new dependency but only if they also work with the client API.

IMHO this is can be simpler, as opposed to having CXF 2.7.x and 2.8.x 
jaxrs frontends still depending till some point of time on the not 
finalized 2.0 API but having the client api located in different modules...

Cheers, Sergey

[1] https://issues.apache.org/jira/browse/CXF-4696

Re: When to move JAX-RS Client implementation to the new module

Posted by Sergey Beryozkin <sb...@gmail.com>.
On 13/12/12 12:01, Sergey Beryozkin wrote:
> Hi,
>
> I've opened CXF-4696 [1] to get the client implementation moved out of
> jax-rs frontend to its own module: to get the main module smaller, to
> let users avoid downloading extra baggage when no client code is
> utilized and in preparation for implementing JAX-RS 2.0 API (though I'm
> keen on keeping supporting WebClient API, with Proxy API having no
> challenge from 2.0 API :-))
>
> I thought I'd wait till CXF 2.8.0-SNAPSHOT but then started changing my
> mind, the reason is that CXF 2.7.x users can expect minor dependency
> changes during the lifetime of CXF 2.7.x anyway, for example,
> jsr339-api-m10 dep will get replaced soon enough by jsr339-api-m13 -
> this for the most parts will be limited just to it, to the dependency
> update.
>
> Moving the client code to its own module will affect 2.7.x users exactly
> the same way, at some point, say, when migrating to CXF 2.7.2, they will
> need to add a new dependency but only if they also work with the client
> API.
>
> IMHO this is can be simpler, as opposed to having CXF 2.7.x and 2.8.x
> jaxrs frontends still depending till some point of time on the not
> finalized 2.0 API but having the client api located in different modules...
>

After more consideration and some feedback it seems that that the best 
thing to do is to postpone it till a new 2.8.0-SNAPSHOT trunk is 
created; splitting the jaxrs frontend into 2 modules on the existing 
2.7.x trunk (and soon to become a branch) appears to be a step too 
far... I'm still planning to do some refactoring on 2.7.x (to do with 
getting ProviderFactory class a bit more manageable given that now it 
has to deal with so many providers) but getting the modules split is 
definitely will be done in 2.8.x

Updating to newer JAX-RS 2.0 milestone releases on 2.7.x is a slightly 
different issue - I'll start a new thread

Thanks, Sergey

>
> [1] https://issues.apache.org/jira/browse/CXF-4696