It’s near the end of day three here at SpringOne Americas, and it got off to a hilarious start. Apparently having lost a serious bet, SpringSource’s Arjen Poutsma showed up at breakfast with a white suit, bright green sneakers, and bright green hair. Very Spring-y!

This is a long post, but bear with me - there’s likely to be something that you will find interesting in here somewhere…so here’s a recap of the sessions that I attended today:

“Case Study: GWT & Comet Integration with the Spring Framework”, presented by David Winterfeldt. This was a pretty good introduction to GWT if you hadn’t already seen it, but what was really interesting was the use of Bayeux for pub/sub messaging on top of HTTP/Comet, using JSON encoded events.

A lot of good example code and other information can be found at David’s websites at springbyexample.com, and springindepth.com

My takeaways: * GWT now has support for generics (GWT 1.5) * best practice - use DTO for GWT, don’t use hibernate domain objects - reduces problems, and is a good idea anyway * Flex may be a viable alternative if flash plug-in is ok in your environment

“Terracotta - Real Apps, Real Framewors, Real Use Cases” presented by Ari Zilka from Terracotta This was a presentation of a web app supporting real-world use-cases, that was developed by Terracotta in collaboration with Spring. Terracotta appears to do a really nice job of implementing what Ari called “Network Attached Memory” - basically, clustered JVMs with replication, fail-over and persistence. Terracotta was open-sourced in Dec. 2006, and of course, they also provide enhanced, commercial-only versions as well as enterprise-level support. It definitely looks interesting - go have a look for yourself at http://www.terracotta.org

Spring and Java EE 6 presented by Jurgen Holler Jurgen gave an overview of the major changes expected in Java EE 6, and then went through many of them, explaining how each was relavent to Spring. I have to say that it sounds like Sun will continue to make a mish-mash of the Java enterprise environment, and that it looks like Spring will continue to be the company that makes sense of it all, simplifies it, and makes it accessable to mere mortals.

That said, here’s a quick overview of the new stuff that affects Spring:

Platform Enhancements: * Java EE Profiles - not much impact on Spring * Sevlet 3.0 - Comet endpoints, autodeployment * Work and TimerManager (CommonJ) is now in JCP

User Component Models: * Authentication Provider Interface * Bean Validation * a REST component model: JAX-RS * WebBeans and EJB 3.1 * Spring to support auto-deployment or web context support - no spring config in web.xml * Spring MVC to support Comet requests as a special request/response type.

Spring 3.1 / 3.2 (4Q 2009) - Tomcat 7 / Glassfish 3

  • Spring  scheduling adapter based on JSR 236 (CommonJ WorkManager) - no draft yet - look for in Spring 3.1
  • JSF 2.0 to be supported in Spring 3.0
  • ajax support
  • page declaration language
  • Java 5 managed bean facility (@ManagedBean, @ManagedProperty) - no real relavence to Spring (similiar to Spring’s @Component and @Value annotations)
  • Continued update of JSF support.
  • JPA 2.0 - look for support in Spring 3.0
  • Expanded mapping and query functionality
  • Support for embedded components
  • standardized query hints
  • lock modes and query timeouts
  • Bean Validation (JSR 303) - look for in Spring 3.1
  • similar to hibernate validation
  • validation metadata (from annotations) can be used anywhere in the stack
  • JAX-RS
  • JAX-RS endpoints will be able to mangaged as Spring Beans
  • Spring will allow integration of a JAX-RS provider, like Glassfish’s Jersey project.
  • Spring will support use of Spring annotations (like @Autowired) in an endpoint implementation, even though it’s lifecycle is managed by JAX-RS, not Spring.
  • Spring will also be an alternative model, as it will provide REST support for mappings, parameter extraction, and will work for both user interfaces and web services.
  • WebBeans - Spring will track this, and may support it once the spec is finalized - may not actually make it into Java EE 6
  • Overlaps Spring’s Dependency Injection functionality - Spring would likely allow mix-and-match
  • EJB 3.1 and EJB 3.1 Lite - looks to me like it’s trying to implement a lot of Spring’s ideas, but will likely still be very EJB-like (ugh!). Spring will provide “proper integration” with EJB 3.1, but of course, will not attempt to be an EJB container.