I have played with ejb 3.0 using JBoss 4.0 sp1 and I think it is another world comparing with revious versions of ejb specs.
A lot of architects advocates the use of lightweight containers as Spring or PicoContainer instead of a lot J2EE practices. I think they are basicaly right about this because we had a lot of problems with J2EE specially EJB components. Now reading J2EE 1.5 initial draft of specs, I think a lot of downsides of this platform are completly removed. As you know one of the big pros of using Spring are concepts like lightweight container, the use of dependecy injection (introduced now on ejb 3.0 as well) and achieving loosly coupled components. This sounds great, but often Spring applications become tighly coupled with Spring framework itself (like ApplicationContextAware beans). To me this kind of rings a bell that this leads to portability issues. We don't know how Spring will evolve in the future (or other opne source frameworks) and if porting an application Spring engined to a future and better framework may not seem an easy job as it appears. Probably Spring developers and even architects may overuse it (at business tier level) just like it happened in the past with ejb's.
Someone said that it is now too late for EJB 3.0 because of the existent open source projects. Hmmm... is it ? The fact that this is about specs application developers have options to choose between application servers while a Spring engined application sticks with Spring.
I'm very interested in opinions on J2EE 1.5 vs. Spring from business tier perspective (web tier is gracefully handeled by Spring :) ).