What sorts of rules can Macker check?
Macker allows you to specify broad access rules that Java’s native access modifiers can’t. The current version supports class- and package-level access rules, such as: • Classes in the UI layer may not directly access the data object layer, or use classes in java.sql. • External systems may not access internal implementation classes (suffixed with ‘Impl’). • One functional module may access another only through its API. • Only classes implementing interfaces in javax.ejb, and certain framework packages, may use the EJB APIs. (All of these are all just examples. Macker doesn’t check anything by default; it’s up to you to write rules to fit what you’re doing.) Future versions will support more sophisticated matching class matching, existence/nonexistence rules in addition to access rules, and possibly rules applying at the method as well the class level. This would allow rules such as: • Classes implementing the SessionBean interface must have the suffix ‘EJB’. • Methods should take and