One of the reasons for the NO vote on our end was that both
JSR's were supposed to work together. JSR-220 complied with this
mandate from Sun by inviting JDO experts to JSR-220. There was little
to no compromise on the JDO side and it seemed to me at least, they
just plowed ahead with whatever they were doing with little regard to
220.
As a developer of data-driven apps, I've watched this JDO/EJB drama
unfold with some interest, and of all the outrageous statements that
have been made, this one has got to take the cake. It's so ridiculous
it's funny.
JDO defined a standard for POJO persistence years ago (JSR 12, no
less). The EJB 3 team completely ignored JDO and decided to define its
own POJO persistence standard. Did you guys appeal to the JDO expert
group to get some of their members on board? No. Did you guys even
accept any of the JDO expert group members that applied to be EJB 3
members, until you were forced to by Sun? No. On the other hand, the
JDO group seems to have actively invited people like Mike Keith from
Oracle and Gavin King from JBoss and even the folks from Cocobase
onboard. This occurred long before the EJB 3 POJO direction was
publicly known as evidenced by
http://www.theserverside.com/articles/article.tss?l=JDO2-Kickoff (no
one knew EJB was going to try to reinvent JDO until just before the EJB
early draft was released much, much later).
Looking at the JCP page, the JDO 2 early spec draft was released June
23 2004 and includes pretty much all the features of the final draft.
Sun's letter wasn't published until September. So, Bill, exactly what
do you propose JDOers should have done to compromise? Should they have
screwed their customers by ripping out features that were already
spec'd out? Should they have waited around another year for EJB 3,
despite the fact that JDO 2 was feature-complete and just in need of
some cleanup? Should they have ignored the fact that EJB 3 doesn't
have some JDO 2 features that JDO customers are demanding? What would
have satisfied you, Bill?
And Bill, what exactly have you done to compromise? You were forced
by Sun to accept some JDO members to your JSR. That's not compromise.
Have you listened at all to the JDO spec members? Considering the
statements made by you and your colleagues at Jboss in public e.g.,
"Hibernate is EJB3", I have a hard time believing that you have any
intention of actually listening to the JDO experts on the EJB 3 team.
Have you adopted JDO 2's XML metadata and mapping syntax to replace the
half-baked stuff in the EJB draft? On the flip side, the JDO draft says
it will use EJB's annotations. Have you created a mechanism to execute
JDOQL through the EJB Query interface? There is already a way to
execute EJBQL through JDO's Query interface. Have you made any attempt
whatsoever to align with JDO APIs? I see several places where JDO has
changed since the early draft to align with EJB APIs.
Also, lets not forget about the numerous compromises made when Gavin
King and Mike Keith were part of the JDO expert group (not the official
JCP crap but all of the JDO 2 stuff that happened for a year before the
official JSR was announced). How were those compromises by the JDO
expert group rewarded? A Jboss and Oracle led effort to create a
separate POJO persistence spec under EJB 3. That is the true source of
the community's confusion.
Seems to me you tried to replace JDO with your own POJO persistence for
no good reason (the alternative is the conspiracy theory that you and
Oracle created your own POJO persistence spec purely for self gain and
to be in control of things), then you ignored JDO until you were forced
to accept some members, and since then you have made no attempt to
align with JDO APIs and in fact have highlighted your lack of interest
in compromise with statements like "Hibernate is a superclass of EJB3
Persistence" at the NE JUG. On the other hand, the JDO team seems to
have invited anyone to join, agreed to help with EJB by joining that
team once they were allowed in, has voiced support for EJB 3, and has
made many changes to align with EJB APIs and execute EJBQL queries.
So, Bill, tell us again about how you've been so willing to compromise
and how JDO 2 needs to be rejected because it ignored you. I'd love to
get another laugh. In fact, let us know what other specs are ignoring
you so we can know what duplicate but Jboss-controlled JCP specs are
coming down the pipeline.