Last week all of us at Inspiring visited the JavaPolis conference in Antwerp. JavaPolis is a five-day event organized by the Belgian JUG consisting of two university session days followed by three normal conference days. The university sessions were three-hour in-depth technical presentations. The fifty-minute conference sessions were less intensive but sometimes also less boring 🙂
We attended just two days, the last university day on Tuesday and the first conference day on Wednesday.
On Tuesday a couple of us visited the ‘Spring Business Tier’ session by Juergen Hoeller and Rob Harrop, who presented some new features of Spring 2.0.
The first part of their presentation was quite interesting, which covered the new XML namespace features. Instead of using the default DTD, in Spring 2.0 you can use XML schema’s in your configuration. By using schema’s it’s possible to add more ‘typing’ to your configuration, which reduces the chance of making mistakes. Besides that, I think it makes your configuration much more readable. Spring itself will have 4 default schema’s you can use, JNDI, AOP, UTIL and TX (Transactions) .
At the top of your configuration you can now declare your schema’s:
And if you want to lookup a datasource through JNDI for example you can use a much more powerful and intuitive definition:
The whole idea behind this schema usage was to make the use of AOP through Spring much easier and the first step was to simplify the configuration.
This explanation lead to their second subject, improved integration with AspectJ. Spring 2.0 now uses the AspectJ syntax to specify pointcuts, even if you don't use AspectJ as the AOP implementation. This makes working with AOP a lot more powerful. You can also use the same Aspects in Spring and in AspectJ without making any changes to your aspects. By using standard annotations (again…) your aspects will be compatible with both Spring and the AspectJ compiler. I personally have some doubts about annotations, if you don’t use them well they can really pollute your code.
After a short break the subject moved to the CommonJ WorkManager. The CommonJ WorkManager is very specific for Websphere and Weblogic users. I think I will keep using Quartz when it comes to scheduling instead of this WorkManager, it seemed a little complicated for simple problems.
The last part of their presentation covered JMS and Message-Driven POJO’s. This sounded very interesting because in one of our current projects where we have to deal with JMS in the near future. But it sounded more interesting than it really was, Juergen Hoeller kept talking about the differences between the two JMS specifications without really explaining the Message-Driven POJO concept.
In the afternoon there was a session about the Java In Action session by Dion Almear and Ben Galbraith. This session was very good. It was technical and very practical also. They started with a very familiar example of Ajax: form completion. Every step of setting up a form supported by Ajax was covered and, best of all, everything was coded live on stage.
At the end they showed some frameworks that can make using Ajax a lot easier for developers. I personally prefer DWR. This framework lets you make use of Ajax in very (Java) natural way without having to make lots of changes in your classic web tier.
The next day, the first conference day, some of us went to the keynote by Jeff Jackson vice-president of the Sun Developer program. His talk was a little bit boring, but T-shirt launcher was nice. Every time when there was Duke on a slide a T-shirt signed by James Gosling was launched into the audience.
Always fun to see a bunch of geeks getting excited by a free T-shirt.
Later on I visited a session about JMX. In some way JMX always draws my attention. Although I never used in a real project it still stays a promising technique for managing some part of your configuration. I say promising cause I see and hear a lot of people talking about JMX, but just a few people really used it around projects.
For the last session that day I went to a session about ‘Continuous Integration’. The title itself wasn’t really exciting but it’s always fun to see someone tell story and try to convince a large audience about the advantages of using Continuous Integration during your projects. To have a continuous and quick feedback loop is so powerful and really increases the quality of your codebase. As an example that a continuous build server also can be fun, he showed usage of two lava lamps, red and green, which are connected to the build server.
If a build failed, the green lamp was turned off and the red one turned on. Even a manager can now see there’s problem. The fun thing was, before a lava lamp really gets warmed up this will take some minutes. Their sport was to fix the build before the red lamp was really on and if lava lamp is turned off before it’s warmed up, you’ll have some nice figures in the pasta in the lamp. Now they tried to keep this figures as long as possible and the only thing you can arrange this, is not to break the build. I know you must be a really big nerd to like this, but I think it’s a very nice and simple way to show that your project tries improve it’s quality. For the people who like the idea, on the site of pragmatic programmers there’s a list of components and instructions how to build your lava lamp enabled build server.
All the Javapolis presentations will become available in the next couple of months on various Java comnuity sites like TheServerSide and the JavaLobby.