For a project at a client I used to use Cruise Control. This worked but was not ideal (it was running in a dedicated vmware on my own computer.) Sometimes I had to shut the vm down to gain the resources.

I heared about Hudson on the Javaposse. I installed it and configured it. Now every day at 8 o’clock it performs a checkout and performs the unit tests. I could have installed the SCM plugin off course. But the database could change without the SCM being updated so this option was better imho.

I have to say Hudson is much simpler to setup and configure compared to Cruise Control. It’s just a webapp that you have to deploy (on Tomcat in our situation). I created a project using the build in web gui and everything was up and running. For Cruise Control I had to perform some stuff in XML also easy, but this was even easier 🙂

If you plan on doing continuous integration and aren’t using Hudson, you should check it out. I still have to do the Selenium webtest but that’s for after the next release. 🙂

Groovy and Grails

During my vacation I did a bit of development in Grails. I have to say I’m pretty pleased with the result. I did a small app for creating offers,orders and generating an invoice from these. I migrated my old postgresql data to the new mysql schema.

I know there are already opensource tools out there who do this. But I wanted to try this technology to build something. Why not something I could use myself.

Grails uses the same ideas as rails but uses the Groovy language. This language leans more towards Java (and actually is just an extra layer on top of Java). I have to say that once you get the hang of it you’re actually more productive using this technology. But off course there is a downside. If you have an existing database with data you could have problems mapping these things using Grails. Grails uses Hibernate underneath but some things are not straight forward, e.g. if you want to use the scaffolding feature make sure your domain class has an id property otherwise you could get into trouble. This looks straightforward but some of my classes had an invoiceId instead of id property.

For the next stuff I’m going to build a Flex frontend. I already did some appz using Flex but there’s still plenty of stuff to learn and the opensource components are growing every day so …