I've toyed with EJBs for quite a while, all the way back to 1.0. But so far its been too cumbersome and offered little gain in most environments I've been working in (e.g. the overhead of remote calls, etc, outweighed the potential benefits).
Now with the 2.0 spec its gotten to a good place where I feel like it will really offer some improvements to almost any environment. But I have a major gripe about CMP that I'd like to hear if anyone can 'justify'. So heres the story - database field names are case insensitive, so common parlance for representing a space is an underscore (e.g. 'this_field'). In Java, case is available and useful, here common parlance is representing a space by a capital letter (e.g. 'thisField'). Unfortunately with the typical CMP EJB implementation of accessor-methods are a bastardization of both of these schools (e.g. 'getThis_field'), which is not only ugly but also makes it much more difficult to move from typical javabean-style Java into EJB. Since the 2.0 spec already requires abstract classes where the engine builds the concrete class, it seems like it would be a no brainer to map 'getThisField()' to the 'this_field' database field and preserve conventions on both sides of the fence. I'm sure people can come up with cases where this appears impractical, or a way to change some generated config file in orion after the EJBs have been deployed, but does anyone have any good ideas on why this is not the default behavior?