The future of building Java EE architecture is becoming clearer.
A well-known JavaEE freelance architect recently published his vision of the future in building an enterprise application architecture. Next comes the free translation. Java EE 6 and Spring 3 turned out to be very similar - at a minimum, the architecture and design differ only in details . I do not see any differences in the development process, where JPA and SessionBeans in Glassfish can be replaced by Spring technologies.
Spring also comes with its application server, which since October 7, 2008 is an open source server with commercial support. If you need to get patches of old versions of Spring, you will need to purchase commercial support from SpringSource / VMWare. For serious projects, you will have to purchase two support packages - for the application server from the vendor and one from SpringSource, although in this case it is difficult to dispatch the simultaneous use of Java EE 5/6. In perspective, I see two possible options:
Deploying Spring to a proprietary tc server
Deploying Java EE 6 applications without Spring
The above dilemma is also valid for migration projects - whether to use the Java EE stack, or to migrate to Spring. This is a strategic or political dilemma rather than a technological one. Of course, you can still independently collect and distribute Spring, but this approach is unacceptable in most commercial projects.
I believe that the future of corporate Java is very clean - we fully use either Spring, or the Java EE stack, but not these technologies together. ')
See also Oracle has published Glassfish development plans.