Java test framework

gsoc review
good use of the extends here to share functionality