Sakai and MariaDB via Vagrant

Sakai has recently switched over to using the MariaDB connector for MySQL databases, and a number of institutions are running MariaDB in production, so I thought I might as well change my dev machine over to MariaDB.

To ease the transition, I whipped up a Vagrant box so I could run this in a VM and spin it up whenever I needed it.

Clone this:

Run this: vagrant up


Sakai, ditch the custom classloaders

A few years ago I added support to the Sakai Maven Plugin to deploy everything that normally goes into /shared/lib and common/lib into just /lib, as per the standard Tomcat classloader layout.

To use, add to the build command. Everything gets deployed to /lib and Sakai starts up without any modifications (except the standard connector modification in server.xml and the optional performance improvements in

Enjoy the future!

Sakai 11: Java 8, Tomcat 8

Sakai 11 now requires Java 8 and Tomcat 8.

However, when you upgrade (and configure), you’ll notice a rather long startup time due to a change in the JAR scanning behaviour of Tomcat:

Server startup in 252800 ms

This scanning is unnecessary for Sakai though, so add this to your Tomcat/conf/context.xml file:


    <JarScanFilter defaultPluggabilityScan="false" />

And now you should have a much happier (and usable) startup time:

Server startup in 55836 ms

Got any more tips to improve startup times? Post in the comments!

The spirit of giving

At work, we love cake. Everyone brings in cake, all the time. End of sprint, during sprint, because someone’s mum made way too much, or just because the day ends with ‘day’. It’s surprising that we aren’t all obese, and a little ironic since we work in health care.

So I decided to turn that into a fundraiser and over the past couple of weeks we have been asking for gold coin donations for the cakes, to go towards making some little kids Christmas’ a bit brighter this year through the Salvation Army Christmas Appeal and K-Mart Wishing Tree.

We raised $45 and over the weekend I took the boys out to help pick out some gifts. So this year some needy kids are going to enjoy a brand new digger, a ‘Planes’ Dusty Crophopper figurine and a ‘How to Train Your Dragon’ Dragon Battle Kit!

Here’s a pic of my boy as we put the toys under the K-Mart Wishing Tree.

2014-12-20 12.09.54

Movember 2014

It’s the tail end of Movember, just a few days to go and my team has almost raised raised over a thousand bucks for the Movember Foundation!

What is Movember you ask? It’s about raising awareness for men’s health issues like depression, testicular cancer and prostate cancer. In Australia, the life expectancy of men is 5 years less than for women, 50% of men struggle with mental health issues at some point, and 50% of men will be diagnosed with cancer by age 85.


1 in 2.

Either you or me.

Fuck that.

I’ve been doing Movember for the past 6 years to try to tackle this issue and have raised a few grand in doing so. This year I setup a team with my work mates and we’ve collectively raised over $1000 already, with more donations promised this week. Our original goal was $1000, with your help we can make it $1500.

All donations are tax deductible  and you can donate here:

Here’s a pic of my latest Mo efforts for your viewing pleasure. You can see past Movember efforts on my Movember page.


Sakai Wicket Maven Archetype updated and released to Maven Central

The Sakai Wicket Maven Archetype has been updated to the latest version of Wicket 6 and styling issues fixed for the latest Sakai portal. It’s also been released to Maven central.

The Sakai Wicket Maven Archetype allows you to generate a sample Sakai app via a single Maven command. The app demonstrates how to get a Sakai tool styled, internationalised and registered, setup your own APIs, wire them up with Spring and inject them via annotations. The app also also includes multi database support via Spring JDBC. It could easily be used as a base for a real tool.

Generate an app:

mvn archetype:generate -DarchetypeGroupId=org.sakaiproject.maven-archetype -DarchetypeArtifactId=sakai-wicket-maven-archetype -DarchetypeVersion=1.5.0 -DgroupId=org.sakaiproject.example -DartifactId=exampleApp

More info here: