I had a number of problems doing it - which took about 3-4 weeks:
* Erasure/generics - it's a huge burden working around this * Scala documentation - trying to understand how Scala does things is very difficult. You can find tutorials and such but getting a true reference is hard. * Trial and Error - what I ended up with is pretty simple but I tried much more complicated things to try and work around missing functionality in Java. In the end, I compromised.