OSGi JAX-RS Connector 4.0 released
Today we are proud to release the OSGi JAX-RS Connector 4.0. A lot has happened since the 3.3 release back in March 2014. This post will give you an overview of the new and noteworthy things included in the 4.0 release.
- We updated the underlying Jersey library to 2.8 which was released back in April. This update is one of the main reasons we are doing the major version upgrade. From Jersey 2.7 on, the team decided to use Java 7 to compile Jersey. Thus Jersey 2.7+ does not work anymore with Java 6 runtimes. As a result we also needed to upgrade the connector to Java 7. We think it’s worth a major version upgrade to indicate the possible incompatibility with older releases.
- One major thing that has changed from Jersey 1.x to 2.x is its dependency chain. It has grown over the last months and it just became hard to use it within OSGi. For this reason we decided to rebundle Jersey and provide it as a single bundle called
com.eclipsesource.jaxrs.jersey-allwhich will be delivered with the 4.0 release. The jersey-all bundle does not have fancy dependencies because all of them are included in the bundle and not exposed. The connector still works with the original/untouched Jersey version but we do not ship it with the release. If you want to use the original bundles you have to fetch them on your own.
- With the introduction of the
com.eclipsesource.jaxrs.jersey-allbundle it’s now possible to update the underlying Jersey library much faster. For this reason we can do more minor releases in the future that just contain bug fixes and Jersey updates. This process is nearly automated now.
- @greencable and ProSyst Software GmbH opened a pull request to support older OSGi runtimes (OSGi R4) which was happily accepted.
- The consumer was modified to be more robust when building paths. Also a new exception type was introduced called
RequestException. It exposes request details like the status code and so on. With this it’s possible to have a more specific error handling.
- The Gson Provider is API now. This means you can consume it as a service and also modify its contained Gson instance for custom de-/serialization.
GitHub repository: https://github.com/hstaudacher/osgi-jax-rs-connector
p2 repository: https://hstaudacher.github.io/osgi-jax-rs-connector