== Why is this an issue? A source code comply to an architectural model when it fully adheres to a set of architectural constraints. A constraint allows to deny references between classes by pattern. You can for instance use this rule to : * forbid access to ``++**.web.**++`` from ``++**.dao.**++`` classes * forbid access to ``++java.util.Vector++``, ``++java.util.Hashtable++`` and ``++java.util.Enumeration++`` from any classes * forbid access to ``++java.sql.**++`` from ``++**.ui.**++`` and ``++**.web.**++`` classes ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Parameters .fromClasses **** Optional. If this property is not defined, all classes should adhere to this constraint. Ex : **.web.** **** .toClasses **** Mandatory. Ex : java.util.Vector, java.util.Hashtable, java.util.Enumeration **** ''' == Comments And Links (visible only on this page) === on 8 Jul 2016, 13:50:54 Ann Campbell wrote: Since references are dropped from deprecated rules, copying to comment for posterity: Checkstyle: IllegalType, ImportControl, IllegalImport PMD: LoosePackageCoupling === on 7 Dec 2017, 14:44:19 Ann Campbell wrote: Rule initially deprecated as part of the drop of design services. endif::env-github,rspecator-view[]