Like the middle-aged father quoting rap lyrics, the JCP has apparently embraced Hibernate as the underlying persistence mechanism for EJB3 in an attempt to be hip, or at least relevant. The article seems strewn with misinformation: “as database vendors also, they probably prefer Hibernate to JDO because it uses the SQL syntax of the underlying RDBMSâwhich allows applications to be locked in to a specific database vendor”, and much of the article is based on the author’s reaction to Marc Fleury’s grandiose merketing statements. It’s also a tainted article in that the author has a horse in the race as a member of the JDO 2 expert group.
That being said, this decision, if true, is a curious one to say the least. The entire EJB3 proposal does smack of desperation – EJB have been so broadly panned in community discussion and even in print (“Bitter EJB”) that something needed to be done to keep them from fading into obscurity. In many ways, a radical departure was needed – lightweight containers and transparent persistence have taken so much mindshare that without an answer from the JCP, the only standards would be de facto ones (Hibernate, Spring, etc). JDO 2 has the promise of being up to the task of transparent persistence without requiring a full J2EE container, but apparently the two expert groups have chosen to be adversaries rather than allies. So they couldn’t use JDO – that would require the two groups to play nice. They didn’t want to make up a new standard – people would ignore it. Instead, they chose Hibernate, certainly helped by Gavin King’s presence in the EJB3 expert group (his work on Hibernate is to be applauded). In doing so, certainly they are hoping and praying that they can instantly capture mindshare by hitching themselves to the buzz-heavy Hibernate, and hoping to recapture all the current Hibernate users as EJB users.
It’s well-known that Gavin has technical beefs with JDO, but salvaging EJB is a far taller order than overcoming minor technical disagreements in the JDO spec. This decision is a dangerous one. Weaving a vendor’s proprietary technology into the heart of a J2EE spec throws too much power to one vendor – I wouldn’t put that trust in BEA, IBM, Pramati, etc. It is even more unstable when that vendor is the unpredictable JBoss group. To my knowledge, it would be a first – the first adoption of an independently developed framework as a part of a J2EE standard (although Groovy is trying as well). Let’s hope that, as Cameron suggests, they are merely pulling ideas from Hibernate rather than adopting it. Time will tell whether EJB3 emerges as a goofy 45 year fronting Ecko gear or a svelte technology borne of an extreme makeover gone right. EJB are in dire straits, only dramatic action can make them relevant again, but the wrong drama could lead to an epic power shift that nobody needs.