!!! Listing 1 //ImportDeclaration/Name[ starts-with(@Image,'org.codecop') and ( (not ( starts-with(@Image,'org.codecop.util') or starts-with(@Image,'org.codecop.framework') or starts-with(@Image,'org.codecop.domain') or starts-with(@Image,'org.codecop.service') ) ) and //PackageDeclaration/Name[ starts-with(@Image,'org.codecop.service') ] ) ] !!! Listing 2 !!! Listing 3 ... app classes must only depend on util, framework, domain and service packages. !!! Listing 4 !!! Listing 5 !!! Listing 6 [util] = org.codecop.util.* [non-util] = org.codecop.* excluding [util] check [util] independentOf [non-util] layer domain = [domain] layer service = [service] [service2] check layeringOf util framework domain service app [all] = org.codecop.* check absenceOfPackageCycles > 1 in [all] check absenceOfClassCycles > 3 in [all]