Is JDO dead now? Sounds more like back to the drawing board, according to the comments submitted with the Executive Committee votes. Google’s “abstain” keeps them in line with their “don’t be evil” mentality, but all the vendor concerns about EJB3 compatability are a bit frustrating. The letter they refer to is a joint letter to the Java community by the spec leads of JSR-243 (JDO 2.0) and JSR-220 (EJB3). They say JDO 2.0 didn’t follow the spirit of that letter, but their wrong, and I think it’s a red herring.
The letter CLEARLY spells out that EJB3 will define the future roadmap for unified Java persistence (though in a separate spec), and that JDO 2.0 will make efforts to be compatible with that future vision while delivering necessary extensions to current JDO users. JDO 2.0 does this. The tone of the vendors seems to indicate that they just wish JSR-243 would wait for that new persistence spec to come out and fully implement it. It has long been known that JDO 2.0 would come out of the gate before this new persistence specification, so how can they be expected to adhere to a spec that hasn’t been defined? The more likely scenario is that the vendors don’t want JDO 2.0 to come out at all. Why? Because the new spec adds some critical functionality that removes many companies’ obstacles to adopting it, and if they use JDO, they don’t need a container, they don’t need to buy a product from the vendors.
Not only does this rejection delay JDO adoption, it also blocks current JDO users from getting functionality they need to make their applications better. This spec was NEVER designed to be the next generation of Java persistence, it’s a maintenance release, and a bridge that takes us toward that future. The vendors have NEVER been big on JDO, but they need to recognize that many people are rejecting EJB wholesale. If EJB are so great, why does Hibernate have such momentum, and why are there vendors focused solely on JDO? There’s a demand or it, and trying to cripple the competition until EJB becomes something palatable is a scummy way of handling the trust the Java community has placed in the Executive Committee.