Jersey
From APIDesign
Jersey, a reference implementation of JAX-RS (JSR 311), intended for building RESTful Web services. I like the framework very much. Just for last two years I was waiting for immediate client/server data exchange. Jersey 2.0 seems to deliver it. But...
I've just got a little bit of time to migrate my project from Jersey 1.1 to 2.0. It is not easy at all! It is painful. For last two years, I've been waiting for support for asynchronous REST communication (as I am trying to write a chess-like server). I've been waiting, waiting. The result? Complete disappointment. I've just tried to run my old code on Jersey 2.0 (without trying any new features), but it does not even compile!
The guys that produce Jersey as sitting a floor up from my office, for two years I've been asking them for asynchronous support and waiting (instead of switching to alternative implementations of JSR 311 - - as JSR 311 is one of the specifications with most implementations). What I got for being a loyal user? I got a Big Bang rewrite. Imports changed, code changed, some classes are missing, concepts are different. Well, being treated this way, I have little intention to upgrade. Why should I spend time upgrading to Jersey 2.0, when it seems as much work as switch to XYZ (which had asynchronous support for ages)?
Looks like some people really believe that Big Bang is natural part of software developement. Well, I don't. I want the Jersey team to write a compatibility bridge to guarantee I can just change the Jersey version and everything will continue to work. I am afraid I am not going to get any support like that. In such case, farewell, as I bet on bad horse. Projects that don't preserve investments of their users should be damned.