This evening, I attended the Spring Web “Birds of a Feather” session, hosted by Kieth Donald, Spring Web Team Lead, and a handful of other Spring folks - sorry guys, didn’t catch your names :-)

Some of the discussion points were:

  • As of Spring 3.0, the source code is no longer hosted on SourceForge’s CVS repositories,

but is in an SVN repository hosted by SpringSource.

  Try svn ls

I’m told that milestone 1 is now available there. You can browse the repository via FishEye at

  • Selenium has a project that allows you to run your selenium tests in JUnit or TestNG, and remotely control your web browser

  • The Grails team is working on support for WebFlow 2.5

  • The Spring MVC team is looking at the possibility of providing some scaffolding (code generation) tools.

  • WebFlow will probably be extended (in version 3.0) to allow flow definitions to be written in Groovy. This is a natural extension to the idea of using EL in flow definitions, but will be much more flexible. For instance, you’ll likely be able to catch and handle an exception in the equivalent of an expression evaluation in a transition. For the record, this is my number one choice for a new feature in SWF.

  • There was some discussion of the previously announced deprecation of the controller class hierarchy. It seems that while Rod is sure that it will be deprecate in 3.0, the rest of the team is not so sure. It’s clear though, that the @Controller annotation is the recommended choice for new code.

  • The new maintenance policy will apply to all Spring products. I asked if this was also the case for Grails - no one on the MVC team was sure.

After dinner, and a short skit put on by the SpringSource crew, Adrian Colyer, SpringSource’s CTO, gave a lengthy, but enjoyable presentation. First up was a demo of Spring Integration (the Cafe sample). Seems that I missed the announcement, but version 1.0 Final was announced yesterday.

Then, the big announcement - SpringSource is starting a new project to provide first-class Spring support for Adobe Flex. They’re doing this in partnership with Adobe, and expect it to be available “early next year”.

On the open-source side, Spring will provide integration with Adobe BlazeDS. The planned integration points will be: - Remoting - Security (presumably Spring Security applied to BlazeDS message requests) - JMS - REST support

Commercially, Spring will provide integration with Adobe LiveCycle Data Services DS (and, I assume, ES).

Adrian stated that as far as integration products for third-party software, the line is clear between open-source and commercial: Spring integration with open-source projects will be open-source. Spring integration with commercial products will be commercial.

Next, Adrian demonstrated Grails, Groovy, and Spring integration by building a Cafe point of sale application in about 10 minutes. Ok, there was a little cheating (pre-written code), but it was still pretty impressive. He was typing about as well as most of us would in front of a large crowd, and when audience members would point out his mistakes, he quipped that it was like pair programming on steroids.

Adrian then proceeded to integrate his Grails example with the Spring Integration “Cafe” sample code, built a war, and deployed it on dmServer. It was a great example of the strengths of Grails.

Rob Harrop then joined Adrian to demo dmServer and provide the near-term dmServer roadmap: * Deployment Plans - configuration to specify how bundles are to be deployed - many kinds of resources will be deployable - a plan was shown that deployed a properties file - plans will be able to be nested - will be able to be defined in xml or Groovy

  • Programming Model
  • OSGi Blueprint Service
  • EJB 3.1 Lite will be supported

  • Support for distributed OSGi via Spring Remoting

  • Middleware Capabilites
  • ActiveMQ internally or externally
  • JTA Transaction manager support

  • Tools Enhancements
  • Manifest Construction support (auto generation, perhaps?)
  • have manifest drive the build (Maven, Ivy, maybe even Ant)
  • Dependency error detection and dependency visualization

  • Easier migration from J2EE to OSGi
  • JNDI “Bridge” - publish services in JNDI that have been moved to OSGi so that remaining J2EE components can still find them.

  • Deployment Environments
  • Unified, distributed provisioning
  • Coordination of deployment in an “elastic topology”
  • “Kernel Everywhere” - tiny kernel, capable of provisioning itself by talking to the repository.

  • Operations
  • centralized administration for clustered deployments (sounds like the work that they’ve already done for tcServer)
  • Auto-tuning (collection and analysis of operational statistics to make tuning judgements).

  • VMWare Partnership
  • As announced earlier this week, SpringSource will be working with VMWare to provide integration between the SpringSource tool suite and VMWare Workstation.
  • Developers will be able to create VMs from their desktop.

Check in again tomorrow for the wrap-up on the final day of SpringOne Americas 2008!