CODERU
A code quality tool to enforce structural quality
...The dependencies between packages need not be defined explicitly.
These general dependency rules are based on common design practices what is reflected in preserved package names: "api", "common", "impl" and "factory".
As an integral part of CODERU there is a tool checking your code for rules conformance.
See coderu rule description on http://coderu.org .