Welcome back to the final installment of This Week in Spring for 2011. It’s incredible to think that we’ve been doing this for a year already! Where has the time gone? Time flies when you’re having fun, as they say…
The hope has always been that these roundups would make it easier for developers to take the pulse of the Spring community. Between the announcements and releases and content from SpringSource and VMware and the incredible deluge of content authored by the community, there is always something interesting happening, somewhere.
While there is a lot of interesting content this week, we’ll defer the usual reviews until next week. This week, we’re going to reflect on the year that was 2011 for the Spring community.
</P> <OL> <lI> <B>Spring 3.1</B> Development of Spring 3.1 began in earnest in early 2010, and by SpringOne 2GX 2010 we already had an idea of what it was going to look like. By the beginning of this year, <a href ="http://www.springsource.org/node/3026">we already had milestones</a> to play with. As the year progressed, we saw numerous new milestones, followed in short order by release candidates. The release candidates progressed and then, finally, a couple of weeks ago, we <a href = "http://www.springsource.org/node/3335">got Spring 3.1 GA</a>.
Among the many new, exciting features and themes in Spring 3.1, there is
- A much improved Java configuration model
- Enhanced, Java-only configuration for JPA and Spring MVC applications.
- Profiles, which let you describe beans in your configuration twice and then activate a given definition based on the environment in which the application’s running.
- A declarative, annotation-driven caching model
- An improved unit testing story
- Hibernate 4 support
Of course, if you want to see all these 3.1 details demonstrated live, you should sign up for the Spring 3.1 Webinar on January 19th (Europe, North America). As useful as this all is, I think the prospect of releases of all the other Spring projects that will build on 3.1 really make 2012 a very exciting year.
</LI> <LI> <B>The Cloud and Cloud Foundry</B> In April of this year, <a href ="http://blog.springsource.org/2011/04/12/launching-cloud-foundry/">SpringSource and VMWare launched Cloud Foundry</A>, the open source Platform as a Service. <a href = "http://cloudfoundry.org">Cloud Foundry</a> can be run on-premise. Cloud Foundry is an open-source Platform-as-a-Service (PaaS). Cloud Foundry works with many languages, runtimes, and services. And, if the list of supported services and runtimes wasn't enough, one only had to wait to see <a href="http://blog.cloudfoundry.com/post/6109591023/cloud-foundry-now-supporting-scala"> Scala</a> support, <a href ="http://blog.springsource.org/2011/08/30/using-postgres-on-cloud-foundry/">PostgreSQL</a> support, <a href = "http://blog.springsource.org/2010/04/13/springsource-acquires-rabbitmq/">RabbitMQ</a> support and <A href = "http://blog.cloudfoundry.com/post/13481010480/cloud-foundry-welcomes-net-framework-community-contributions">.NET</a> support added in the months that followed. Cloud Foundry works <a href = "http://blog.springsource.org/2011/10/13/using-cloud-foundry-services-with-spring-part-1-the-basics/">brilliantly</a> with <a href ="http://blog.springsource.org/2011/11/04/using-cloud-foundry-services-with-spring-part-2-auto-reconfiguration/">Spring applications</a>. You can use the <a href = "http://blog.springsource.org/2011/11/09/using-cloud-foundry-services-with-spring-applications-part-3-the-cloud-namespace/"> <<CODE>cloud</CODE>></a> namespace or Java configuration in tandem with the Cloud Foundry library to interrogate and work with the services provisioned by Cloud Foundry. <a href ="http://blog.springsource.org/2011/11/10/using-cloud-foundry-services-with-spring-part-4-%e2%80%93-spring-profiles/">Spring 3.1 profiles can be used to to good effect on Cloud Foundry</a> to conditionally reference data sources that are managed by the cloud when your application's run in the cloud. Spring AMQP and Spring Integration make it simple <a href = "http://blog.springsource.org/2011/08/16/chatting-in-the-cloud-part-1/">to build messaging applications using RabbitMQ</a> on Cloud Foundry, and the Spring Data projects make it dead simple to build applications that work with <a href = "http://blog.springsource.org/2011/05/03/using-mongodb-redis-node-js-and-spring-mvc-in-a-single-cloud-foundry-application/"> MongoDB, and Redis</a> on Cloud Foundry. There is of course <a href = "http://blog.springsource.org/2011/08/24/using-micro-cloud-foundry-from-grails/">Grails support</a> and <a href ="http://blog.springsource.org/2011/04/12/roo-cloud-foundry-productivity-in-the-cloud/">Spring Roo support</a>. <a href = "http://blog.springsource.org/2011/08/24/micro-cloud-foundry-for-spring-developers/"> Cloud Foundry released Micro Cloud Foundry</a>, a virtual machine with a fully configured cloud that you could use to develop your Spring applications locally. To support automated builds with Cloud Foundry, <a href="http://blog.springsource.org/2011/09/22/rapid-cloud-foundry-deployments-with-maven/">developers can use the Maven plugin</a>. </LI> <LI> <B>Big Data</B> 2011 delivered the implementation of the NoSQL data integration vision that Rod Johnson described way back at SpringOne 2GX 2010. This year saw many Spring Data projects reach or exceed 1.0 releases (and the numerous milestones and release candidates that precede GA releases!), including <a href = "http://blog.springsource.org/2011/02/10/getting-started-with-spring-data-jpa/">Spring Data JPA</a> and <a href = "http://www.springsource.org/node/3302">Spring Data Neo4J</a>, <a href = "http://www.springsource.org/node/3346">Spring Data MongoDB</a>, <a href ="http://www.springsource.org/node/3337">Spring Data Redis</a>, <a href = "http://www.springsource.org/node/3336">Spring Data GemFire</a>, and the evolution of numerous other interesting projects like <a href = "https://github.com/SpringSource/spring-hadoop">Spring Hadoop</a>, and the concept of <a href = "http://blog.springsource.org/2011/07/27/fine-tuning-spring-data-repositories/">Spring Data Repositories</a>. </LI> <LI> <B>Mobile and The Next Generation Web </B> The web's a big place, and it comes in many form factors. Today, delivering an application means delivering it through the web, and on mobile platforms like Android and iOS. A huge part of building better mobile applications is building RESTful services for communication between client and a server in a standard, interoperable way.
Spring Core provides the
RestTemplate which facilitates RESTful communication between clients and servers.
Spring Android provides support for consuming RESTful web services from Android devices.
This year even saw the creation of some great information for <a href = "http://blog.springsource.org/2011/08/26/clean-code-with-android/"> building cleaner Android applications overall</a>. As powerful as REST is, it can't be the full story. A critical piece of the pie is security, and authorization. After all, Facebook can't very well go around exposing your data through a RESTful service that you haven't explicitly authorized it to. The last few years bore witness to the rise of the various OAuth standards, and implementations by the various service providers like Facebook, Twitter, etc. <a href = "http://blog.springsource.com/2011/09/08/spring-social-1-0-what-a-year-makes/">Spring Social went GA this year</a> and it supports communication with these services through OAuth. Spring Android also supports Spring Social, making it ideally trivial to consume OAuth-secured, RESTful services from
Android applications. Additionally, Spring Security OAuth, a project for Spring Security that’s dedicated to helping people expose secured services using OAuth, started its march to GA this year, as well.
</LI> </OL> <P> That's it for this week and year! Happy new year! We look forward to seeing you next year! <p>