У меня есть два отдельных пакета:
mycomp.sales
- Order
- OrderPlaced
mycom.delivery
- Delivery
- OrderPlacedListener (depends on mycomp.sales.OrderPlaced)
Я хочу установить правило, которое проверяет, что пакет mycom.delivery
имеет только зависимость от OrderPlaced
и не имеет других классов в пакете mycomp.sales
.
До сих пор я придумал следующее:
JavaClasses importedClasses = new ClassFileImporter().importPackages("mycomp.delivery");
ArchRule rule = classes()
.should().onlyDependOnClassesThat().resideOutsideOfPackages("mycomp.sales..")
.orShould().onlyDependOnClassesThat().areAssignableTo(OrderPlaced.class);
rule.check(importedClasses);
Но это не удается на OrderPlacedListener
(который имеет зависимость от mycomp.sales.OrderPlaced
).
Как сделать это?