An introduction to Spring Extensions
There's been quite a bit of activity lately in the community around Spring Modules and Spring Extensions and how the two relate to one another. In order to clarify things, the following is a cross-post from the Spring Extensions forums.
Spring Extensions is the next evolutionary step for Spring Modules. That sounds a little vague, so let's look into more detail as to what that really means...
Spring Modules did a great job of bringing together community additions and enhancements to the Spring Framework but it had several 'challenges':
1. No formal process to follow
2. Extensions matured at different rates and yet were all lumped together, which meant that sometimes releases were delayed.
3. Quality and activity between extensions varied drastically, with no obvious external way of telling that.
4. Spring Modules were quite clearly 'Java only'. They were hosted on Java.net, and the distribution was a jar file.
Enter Spring Extensions (SE). SE aims to solve these problems by providing a formal incubation process for extensions to Spring. A spring extension is a single, cohesive open source community project that extends one of the existing Spring projects, or possibly even invents a new way of applying the Spring programming model.
Each Spring Extension maintains its own identity and has its own source code repository/issue tracking/forum services. As such, a Spring Extension can target any platform, be it Java, .NET or even Python. A spring extension is led by a member of the community. Also, each extension is assigned a Sponsor who is an employee of SpringSource whose responsibility it is to guide and support the project lead as the extension matures.
An extension starts in the incubation phase and will then graduate, under the supervision of the project lead and Spring/Source sponsor, until it reaches 'live' status when appropriate quality criteria are met. Typical benchmarks for judging a particular extension as 'live' include appropriate test coverage, samples and reference documentation; the usual hallmarks of a professional open source project.
In addition, each extension is closely associated with the SpringSource brand and, when it reaches live status, you can therefore expect the same levels of quality in an extension as you already expect of the rest of the Spring Portfolio projects. It's even possible in some cases that an extension may graduate to being a full portfolio project.
Spring Extension essentially deprecates Spring Modules and there will not be any further releases of Spring Modules. However, as you will have noticed on the current list of Spring Extensions, not all the functionality that was in Spring Modules is currently captured in an extension...
This is where the community can really help. I would be really interested to see proposals for bringing some of the modules that currently reside in Spring Modules into Spring Extensions, but I can't do that unless the existing contributors to those modules get in touch with me. If you, or someone you know, was involved in a particular Spring Module, and you want to bring it Spring Extensions, then please contact me and we'll start the process.
Project Lead, Spring Extensions