Skip to main content

EJB 3.0 vs JDO debate

Posted by daniel on May 10, 2004 at 9:47 AM PDT

Last week at TheServerSide Java Symposium, spec lead Linda DeMichiel unveiled the current state of EJB 3.0.

The effect was immediate. Rod Johnson kept shaking his head during his presentation "J2EE without EJB" saying "I thought this slide would be controversial." He had updated his slides to incorporate the changes that DeMichiel had detailed for EJB 3.0. Although he liked many of the changes in direction, he noted that EJB 3.0 would not be real for quite a while and adoption would add even more time. In any case, it seems as if EJB is moving in the direction set by Spring, PicoContainer, and others.

Meanwhile, an interesting discussion has popped up on the ServerSide site about EJB 3.0 and JDO 2.0: Views from both sides. The discussion begins with a link to Gavin King's blog which credits DeMichiel for her leadership on the spec and writes "The expert group has embraced annotations aggressively, finally eliminating deployment descriptor XML hell. Taking a leaf from Avalon, Pico, Spring, Hivemind, etc, EJB will use dependency injection as an alternative to JNDI lookups. Session beans will be POJOs, with a business interface, home objects have been eliminated. Along with various other changes, this means that EJB 3.0 will be a much more appropriate solution for web-based applications with servlets and business logic colocated in the same process (which is by far the most sane deployment topology for most - but not all - applications), without losing the ability to handle more complex distributed physical architectures."

But then King turns to persistence and answers the question "
What was wrong with JDO? Well, the EJB expert group - before I joined - came to the conclusion that JDO was just not a very appropriate model for ORM, which echoes the conclusion reached by the Hibernate team, and many other people. There are some problems right at the heart of the JDO spec that are simply not easy to fix." In EJB3 King explains the reasoning behind this decision. On TheServerSide you can read a response from Abe White and the active discussion that followed.

In addition in
Also in Java Today
, templates can obviously be used for more than generating the personalized spam that ends up in your in box. In the first part of Template-Based Code Generation with Apache Velocity, Giuseppe Naccarato explains basic concepts related to templates and transformations, and implements a simple code generator that takes an XML representation of classes and data members and generates the Java code to define them using Apache Velocity.

" Someone working on their own projects on their own time is a huge indicator of them having passion about what they spend their life on." In Forums John Mitchell joins the discussion on Java Certification saying that "if someone came in and said that one of the things they've done to motivate themselves to learn more of the details about a technology by using the certification process, that says something. Somebody going through the motions to get a piece of paper says something quite different".

Tackline adds that you shouldn't refuse to consider someone with certification any more than you should over emphasize the importance of it. He writes that "Discarding CVs on the basis of certification is less useful than discarding surnames starting from A-T and keeping U-Z. The only people I've seen proudly displaying Java Certification are hopeless programmers. You're not going to find M[rs] Wright that way."

Rick Carson considers the Lack of Feedback and asks "
How do *you* judge 'success' in the context of an ongoing, Mammoth project? You didn't seem to like my answers, which were about doing the best you can with what you have and what you know, (and being happy if you know that you've done a good job within those parammeters) so what's your answer?"

Shutdown hooks need to be quick, deadlock-safe and can not start new threads."
In today's Weblogs , David Walend shows an example of a shutdown hook and explains that he likes "Runnable implementations for my shutdown hooks instead of extending Thread. It keeps the API for my stuff separate from the zoo of methods available for Thread. In the library side of the code, I make the shutdown Runnable accessible so that I can control the order that things shut down from another part of the code. I usually have to customize the shutdown order. It changes via negotiation with the rest of the system. I try to log what's going on if things go wrong; debugging as the system fades away can be frustrating." Also, congratulations Dave on finishing his Masters.

In today's Projects and Communities , the community features a link to the LinuxWorld article on Java on Linux: State of the Union.

The Java Tools community's ofbiz project is preparing for its Open for Business users conference in Minneapolis.

In today's News Headlines

Registered users can submit news items for the href=""> News Page using
our news submission
. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
News RSS feed

Current and upcoming
Java Events

Registered users can submit event listings for the href=""> Events Page using our href=""> events submission
form. All submissions go through an editorial review before being
posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the
Today RSS feed
. All members can subscribe to the email
updates for the site at the href="">
java-net Mailing Lists page. You must be logged in to subscribe
the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
it will be archived along with other past issues in the href=""> Archive.