Among the changes being made to Clearspace during 2008 is the adoption of the Spring framework in many parts of the application. The first and most obvious feature of Spring of which we are taking advantage is the well-known and robust configuration and dependency injection service. Much of what was formerly done using the JiveContext is now delegated to a Spring ApplicationContext, and this trend will continue. This enables easier integration with existing libraries, more pluggability and testablility, and greater familiarity to the developer world. What is more, with our upgrade to Struts2 (from WebWork2) all Struts objects are created using Spring as the object factory. The immediate benefit to the developer is that any Spring-managed dependencies in a Struts object (actions, interceptors, etc) will automagically be set using Spring autowiring.
JDBC and Transactional support are other areas where we have attempted to make use of the facilities provided by the Spring framework. Indeed anyone who has used the code provided by the framework for those two areas will be clear as to why we have chosen to do so. Because of the improved ease of layering transactions declaratively, much more of the codebase will be transactional than before, leading to improved data integrity across the system. We have also taken advantage of Spring LDAP support, DWR integration, CXF integration, and OSWorkflow integration. Last but not least, we have worked to integrate the Acegi framework for authentication, and are working to use it for authorization as well.
The inclusion of the Spring framework into our project lays the groundwork for many benefits in upcoming versions of Clearspace. We hope that you're as excited as we are to explore the possibilities and reap the benefits of its arrival.