== 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[]
