Hi
CXF now supports 0.8 version of the jax-rs api (with few exceptions) [1] and
the documentation has been updated [2].
You should have no problems at all upgrading from 0.6 to 0.8 except for these
two cases :
1. MessageBodyWriter and MessageBodyReader interfaces have been updated - if
you do create custom message body providers you'd only need to recompile after
changing the signatures, there won't be a need for changing the actual
provider's code.
Note that if you use Spring to register the providers then you'd need to change
jaxrs:entityProviders to jaxrs:providers.
2. Before the upgrade it were not possible to inherit parameter-level
annotations from interfaces/superclasses
ex.
public interface Book {
@Path("/books/{id}")
Response get(@PathParam("id") String id);
}
It were possible to inherit @Path but not @PathParam, hence the impl class had
to be written like this :
public class BookImpl implements Book {
Response get(@PathParam("id") String id);
}
This has been fixed, but note that you have to remove @PathParam from your impl
class for the inheritance to work - this per spec - if a given method provides
some JAX-RS annotations then the further lookup should not continue.
About the future plans. I'm happy that we've got a 0.8 version support. I don't
expect any significant changes but the various finer improvements added to the
api/spec up until 1.0 final. Thus I think it's very realistic to expect that
CXF will eventually support the 1.0 final version of JAX-RS. Personally I'm not
planning to do a lot of CXF JAX-RS work during the next 2 months, I'm on
holidays for the most part of August and I won't have much time this month
either - though I will do my best to reply to queries and will probably do
another merge with some minor 0.8 fixes before the end of July. I reckon we
might get a 0.9 support sometime in the end of September/early October and the
final version support a month or two afterwards. Note that the final JAX-RS RI
(Jersey) is expected to ship in the end of September.
As such I'd like to encourage the CXF JAX-RS users to consider creating patches
whenever possible/feasible/realistic. I'd like to thank everyone who has tried
to experiment with CXF JAX-RS, provided some feedback, and especially those who
have contributed various fixes/custom providers/, etc. For CXF JAX-RS to move
forward more community support is needed. If that worries you a bit :-) then
please do not hesitate to experiment with other JAX-RS implementations.
If you're willing to consider contributing some code/fixes - then please have a
look at the end of the wiki page at [2]. I'll add some corresponding JIRAs
later on. For ex, I'm pretty bad when working with Dates/Calendars :-) - if
someone can provide a fix for a RequestImpl which deals with If-Modified-Since
header the it would be cool. Try to experiment with other advanced features
like CacheControl, Etag, Cookies, etc and provide fixes when you get some bugs.
If you're after doing some advanced URI manipulation then consider completeing
the URIBuilderImpl, etc...We'll get it all fixed eventually - but it may take a
bot longer then you'd expect if no contributions will be made...
Enjoy, Sergey
[1] https://jsr311.dev.java.net/nonav/releases/0.8/index.html
[2] http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland