Code review - use final when possible and clean up interfaces remove useless stuff
Code review - use different way to obtain class loaderand say writer instead of out
Code review - rename abstract base class
Code review - optimizations
Code review - static helper classes
Code review - syntactic clean ups
Code review - optimizations
Code review - use jacoco to review tests
Code review - avoid empty catch blocks
Code review - cosmetics
Code review - also make test classes consistent with the PMD rules