CODERU
A code quality tool to enforce structural quality
...The CODERU-rules rely on reserved package names and the allowed dependency rules between them expressed in a general way.
Unlike other tools forcing you to define allowed or disallowed individual package dependencies CODERU is based on a fixed set of general rules. 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.
...