One of the main themes for me today was Maven. I attended two presentations by Jason van Zyl, one of the founders of the Maven project. The presentations focused on the main reasons for choosing Maven and the m2Eclipse plugin. Having previously seen a much older version of the eclipse plugin, I was impressed by the functionality of the newest version, and how much more quickly you can get up and running. One aspect I was particularly interested in, but there wasn’t enough time to cover, was the possibility for “project materialization”, a mechanism for quickly getting new developers ready to work, with automated project check-out, customized Eclipse cheat sheets etc. Another point of attention, which deserves further thought is the handling of multi-module projects. Also of interest to me is that the CI server of choice on the Maven project is Hudson, which they are using both for CI and release builds. He did, however, point out some issues with the handling of dependencies in the multi-module builds, and recommended instead using the free style project type. I hope these issues will be fixed in the near future, as I see a multi-module project as a very useful concept.
Matthew Wakeling gave an interesting presentation on performance engineering. He billed his presentation as “everything you ought to have been taught in your computer science course, but may have forgotten”. Since my own CS course was pretty lacking in this area, and I usually take advantage of what is provided out of the box in Java (for example, sorting algorithms), I found it a useful discussion.
Anton Bar’s follow up presentation “Open Web File System” continued the discussion on the G.ho.st platform, focusing on OpenID (for authorization across multiple sites) and OAuth (for authorization). Both seem like promising APIs, though currently not widely adopted. The file system itself is based on WebDAV, and Anton gave a number of examples of working with WebDAV on different platforms.
My final presentation for today was given by Chris Richardson and was titled “Improving Tests with Object Mothers and Internal DSLs (EE)”. The presentation gave some patterns for reducing redundancy in unit tests, including the use of “object mothers” – basically classes with static getXXX methods for generating re-usable test data. The second half of the presentation focused on the use of Selenium for testing web applications, and the use of Chris’ project Umangite, designed to take away some of the effort in setting up Selenium tests.