Spring Experience 2008

It feels like a year ago, actually it was last year, that I went to Miami, Florida, USA together with two colleques. There we were able to follow a lot of presentations about the springframework. These presentations were given by the contributors of all different springframework modules. For us three it was a three day learning experience. In this article I want to give you an impression of these days.
I started of my presentations with a presentation about “
Full Stack Web Frameworks”. What is a Full Stack Web Framework? To be honest, I did not really care about that question, but it was a nice presentation about the current status of Spring web projects and the future. The separation between Spring webmvc and Spring webflow is going to disappear. It is going to be one fully integrated web project. I think this is a good think, it will became easier to use webflow when you need it and not make the choice to do webmvc or webflow. Some important things in the presentation were:
- Using REST like url’s for web resources.
- Support rendering of different views (xml, html, json) by state of the request (REST as well)
- Convention over configuration resulting in easier spring config files (or annotations)
The next presentation was about the
new features in Springframework 2.0/2.5 by Jürgen Höller. There are three big groups of changes:
Platforms : There is now support for Java 6 and Java EE 5, better support for JCA and JPA. The most important platform improvement is out of the box support for OSGi modules. Every springframework module is now an OSGi module. This does result in some name changes, so beware when upgrading. Another thing I like a lot is that there is finally officially support for spingframework on websphere. So finally you can do threading and transactions on websphere with support from IBM. The catch? You need websphere 6.0.2.19+ or 6.1.9+.
Annotation Configuration : more and more xml type of configurations can now be replaced by annotation driven configuration. These annotations can be market standard annotations like @PersistenceUnit or @TransactionAttribute or special spring framework annotations like @Controller and @Autowired. The Test framework is also completely annotation driven. You can switch between junit 3.8, 4.x and TestNG without really making code changes.
AspectJ support : There is still a lot of proxy based aspects, there is however a new kid on the block. It is called load time weaving. The good part, you can use aspectJ without a change to the jdk your server is running on. There are some buts, have a look at the reference documentation to find out the specifics.
After this tough Jürgen presentation I had a presentation about “
Ajax integration guide for 2008”. Nice but not a lot of new things. I did learn about an ajax framework called jQuery. A very nice and lightweight ajax framework. I will an article about jQuery in the future. I did use it for a demo application, more on that later. You can also check the web page of course. Another presentation about ajax was actually about JSF or Java Server Faces. If you like the idea of Java Server Faces, then this framework is a must see. The framework is called
icefaces and there is a very good integration between icefaces and springframework. It’s all looking very sharp and there is a nice petshop implementation with icefaces available.
Back to more springframework, well actually it can become more springframework. The next presentation was about “
Useful Spring Extensions”. This presentation is about the spring-modules project, sorry it is renamed to spring extensions. This project has some extensions to the springframework that sometimes become part of the springframework. It has a lot of different modules. There are three modules I want to bring to attention right now:
Caching - Should be as non intrusive as possible, do not think about caching when creating your business logic. The caching solution as provided by spring extensions is an abstraction of multiple caching solutions. So it is not a caching provider, it integrates with EHCache, JBoss cache, JCS, Gigasoaces and OCache.
DB40 - This is an object database that makes extensive use of the data layer as defined by the springframework. So very good integration with spring. There is a Template and a support class available just like for jdbc, jpa, jms, spring-batch, etc. A very nice way to start experimenting with an object database.
Validation - Nice integration with validation frameworks like: Commons validator, Valang and Bean Validation. The bean validation is now enhanced with some nice annotations to specify which beans to validate and with what rules.
Another presentation is about “
Grails for spring developers”, I am not going to talk about this very long. If you are interested in stuff like ruby on rails, check this out. Without any prior knowledge Allard, Roel and me were able to create a complete application in a few minutes while waiting for the plane. Maybe I will write something about this as well, but the available documentation is already pretty good.
In the past I have done a lot with acegi security, now called Spring-security. Therefore I was curious to find out about the direction of the 2.0 release. So I went to “
What’s new in Spring Security 2.0”. It was a nice presentation. The morale can be described in one sentence. More convention, less configuration (if you want). The amount of necessary configuration lines decreased from around 120 to around 20. Not bad is it? Due to the name change all the package names have changed as well. There is the possibility (for backwards compatibillity) to keep using your old configuration, you do need to do a find replace on package names.
Another presentation I attended is “
RESTful web services”. One thing I can tell, this is going to be big according to the springframework people.
The last presentation I would like to mention is the “
Spring Dynamic Modules”. Some of you will think, what no OSGi? Well, they had to change the name of spring-osgi into “Spring Dynamic Modules for OSGi(tm) Service Platforms”. To be honest, this was the main reason why Allard and me wanted to go to miami. Not the nice weather, not the everglades, not the florida keys. We wanted to learn about the next release of spring dynamic modules. Along the way we got Roel in there as well. Why? Well, OSGi is all about SOA. Yes, so there is a very nice bridge between cool custom development and commercial architectures. When talking about OSGi, you are talking about services. These services come with a certain version, dependencies and visibility. Using a light weight BPM framework (available using the Spring-extension project I mentioned) you can create a very light weight Service Oriented Architecture using components instead of web services. The fact that each component in itself CAN be a web service is not important anymore. This is all very hot and cool technology. Hope to be blogging about this in the future as well.
Concluding, it was a great event, very good talks, good atmosphere. Hope to be there again next year.