I don't really like forcing the consumer to pass in the message source service here, just for the benefit of allowing us to mock our tests.  Can we get rid of this?  Also, there is a MessageUtil.translate(String) method that you can use for translation.