Class RegrasArquitetura
java.lang.Object
br.com.xadm.comum.teste.RegrasArquitetura
Fábrica das regras ArchUnit compartilhadas da casa. Cada app monta seu
ArchitectureTest com @AnalyzeClasses(packagesOf = Application.class) e compõe
estas regras (parametrizadas pelo pacote-base) com as regras próprias da sua topologia
— a base não é achatada: só sobe o que é genuinamente comum (plano 003 T3).
Uso:
@ArchTest static final ArchRule semCiclos =
RegrasArquitetura.semCiclosEntreFatias("br.com.xadm.meuapp");
-
Method Summary
Modifier and TypeMethodDescriptionstatic com.tngtech.archunit.lang.ArchRulecamadaNaoDepende(String pacoteOrigem, String pacoteDestino, String motivo) Uma camada não depende de outra (ex.: parsing não depende da camada HTTP).static com.tngtech.archunit.lang.ArchRulesemCiclosEntreFatias(String pacoteBase) Sem ciclos entre as fatias de topo do pacote-base — a invariante que onpetro e vantroba já compartilham (package-by-layer e package-by-feature).
-
Method Details
-
semCiclosEntreFatias
Sem ciclos entre as fatias de topo do pacote-base — a invariante que onpetro e vantroba já compartilham (package-by-layer e package-by-feature).- Parameters:
pacoteBase- pacote-base do app (ex.:br.com.xadm.meuapp)- Returns:
- regra ArchUnit de ausência de ciclos entre as fatias de
{pacoteBase}.(*)..
-
camadaNaoDepende
public static com.tngtech.archunit.lang.ArchRule camadaNaoDepende(String pacoteOrigem, String pacoteDestino, String motivo) Uma camada não depende de outra (ex.: parsing não depende da camada HTTP).- Parameters:
pacoteOrigem- padrão do pacote de origem (ex.:..processing..)pacoteDestino- padrão do pacote proibido como dependência (ex.:..api..)motivo- justificativa (aparece na falha)- Returns:
- regra ArchUnit proibindo a dependência origem→destino
-