When you think of a JCP meeting about a JSR what do you envision? Many people on the outside probably feel like the JCP is a mysterious secret society. Vendors meet together and "plot" the course of a specification. We, the users, never get to see what is going on behind the scenes. We are sitting there with our fingers crossed, hoping that at the end of the long process, the expert group did the Right Thing (tm). Sun keeps changing the JCP process, trying to make it more and more open, but still. We want more don't we?
Well, I want to tell you about the JDO 2.0 kickoff meeting that I was fortunate to be part of last week. Since it wasn't an official JSR meeting (first we need a JSR to be accepted), everything said was public. This is very significant. Noone could hide behind the process, and everything was out there. With all of that, working groups with competing vendors got together over the 3 day meeting to work on things. Vendors were discussing what they did right now, and what they were planning to do in the future. I probably learnt much about the different JDO vendor products just via this information alone.
Let's talk a little about what went on at the meeting. First of all, SolarMetric kindly sponsored the event, and people from europe and beyond made it over. We had vendors like Solarmetric (Kodo JDO), LIBeLIS (LiDo), Poet (FastObjects), Hemisphere (JDOGenie), Progress (ObjectStore), Versant (enJin), and a couple of small companies you may know: Oracle and SAP. Along with vendors, we also had JDO experts like Robin Roos and David Ezzio, and Wes Biggs represented the open source world (he is on the XORM team). I would have loved to see Gavin King (Hibernate) present, and he has been approached, so hopefully he will be a part of this some time soon. It was great to see a mix of vendors, and "users" of the technology. The debate was very focused on what is the right thing for the developer, rather than haggling on innards for the vendors (should I be surprised?).
The three days were spent brainstorming on what JDO 2.0 should be all about, and getting into details on some of the technology that people want to put into it. People brought their JDO 2.0 wishlist, especially Robin who had put in a lot of work, ending up with a document the size of the Iraqi dossier :) This document was used as a reference throughout the discussions. We were all glad that Robin had put that much thought into the topics.
We first discussed what we wanted JDO 2.0 to be about at a high level, and seemed to come up with:
- Standardize support of RDBMS: Users want the O/R mapping spec'd out in JDO. JDO/R will be created that will specify an O/R mapping layer.
- Improve core areas like relationship management, and enhanced queries (better JDOQL, and SQL support)
- Broaden the range of implementations: Address the 1.0 limitations of requiring binary compatibility, and that only classes, not interfaces, can be presistent.
- Disconnected/Detached operation: Allow the user to detach the JDO persistence capable objects, and later re-attach them.
- Align even stronger with the rest of J2EE (e.g. servlets and EJB)
- Ease of use: API changes, metadata, and more.
This is the tip of the ice-berg though. There were a lot of really cool features talked about that don't seem apparant from those on the list above, but take a look through those and see how much JDO is willing to adapt in 2.0. Ok, for the rest of this report I will talk about items that were discussed by topic:
- More flexible with respect to other JDO implementations: allow for reflection based approaches
- JDO/R: metadata, inheritence, managed relationships / cascade delete
- Queries: JDOQL updates, Named Queries, SQL standardization