I was talking to someone about this topic post-Devoxx. I came up with an idea that may be worth considering. Perhaps the Java EE platform can recognize another class of bean that has persistence and transaction capabilities, but not the rest of EJB. Here's my proposed breakdown, in terms of airplane seat classes (I was on an airplane at the time).
First class - EJB session bean
Business class - local transactional bean
Coach - Simple managed bean
The main differientiator of a "business class bean" from an EJB is that it would have the option to use local transactions, just like an application-managed JPA persistence unit. It would also not support any HA concerns. But it would be a drop in replacement for so-called "lightweight" transaction beans that Spring offers.
Then, we wouldn't need to do anything special in Weld / Seam 3. All we would need is to be able to support these types of beans in a servlet container, the same way that Weld supports those environments. But it would be a standard part of Java EE (6 MR1 or 7).
If we feel like we need to support this use case in Seam, then clearly there is still something missing in Java EE.
-Dan
--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597
http://mojavelinux.com
http://mojavelinux.com/seaminactionhttp://www.google.com/profiles/dan.j.allen