Jersey 2.26 is a reference implementation for JAX-RS 2.1 (https://jcp.org/en/jsr/detail?id=370), which means it brings all new features defined there plus related code updates. Jersey 2.26 is part of Java EE 8 and is integrated in Glassfish 5.0, which is Java EE 8 reference implementation.
Selected features introduced in JAX-RS 2.1:
Unfortunately, there was a need to make backwards incompatible changes in 2.26. Concretely jersey-proprietary reactive client API is completely gone and cannot be supported any longer - it conflicts with what was introduced in JAX-RS 2.1 (that's the price for Jersey being "spec playground..").
Another bigger change in Jersey code is attempt to make Jersey core independent of any specific injection framework. As you might now, Jersey 2.x is (was!) pretty tightly dependent on HK2, which sometimes causes issues (esp. when running on other injection containers. Jersey now defines it's own injection facade, which, when implemented properly, replaces all internal Jersey injection.
Don't be mistaken - Jersey still runs on hk2. But it should be possible to get rid off that dependency when other container provides same functionality. As already mentioned, the motivation is to be able to integrate seamlessly with other frameworks, like cdi, guice, etc. This is still work in progress and there is one consequence: user has to provide Jersey injection implementation. The only one which is 100% ready right now is based on hk2:
<groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>2.26</version>Jersey 2.26 also contains experimental support for CDI SE, but it is not yet suitable for production use.
Please try out Jersey 2.26 and let us know if you find something which might be improved:
Jersey mailing list
Jersey issue tracker