!!! 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]