Class PlantUmlArchCondition
java.lang.Object
com.tngtech.archunit.lang.ArchCondition<JavaClass>
com.tngtech.archunit.library.plantuml.PlantUmlArchCondition
public class PlantUmlArchCondition extends ArchCondition<JavaClass>
Allows to evaluate PlantUML Component Diagrams
as ArchUnit rules.
The general syntax to use is
There are various factory method for different input formats (file, url, ...), compare
A PlantUML diagram used with ArchUnit must abide by a certain set of rules:
The general syntax to use is
classes().should(adhereToPlantUmlDiagram(someDiagramUrl, consideringAllDependencies()));
The supported diagram syntax uses component diagram stereotypes to associate package patterns
(compare PackageMatcher
) with components. An example could look like
[Some Source] <<..some.source..>>
[Some Target] <<..some.target..>>
[Some Source] --> [Some Target]
Applying such a diagram as an ArchUnit rule would demand dependencies only from ..some.source..
to ..some.target..
, but forbid them vice versa.There are various factory method for different input formats (file, url, ...), compare
adhereToPlantUmlDiagram(URL, Configuration)
adhereToPlantUmlDiagram(File, Configuration)
adhereToPlantUmlDiagram(Path, Configuration)
adhereToPlantUmlDiagram(String, Configuration)
PlantUmlArchCondition.Configuration
.
Candidates are
PlantUmlArchCondition.Configurations.consideringAllDependencies()
PlantUmlArchCondition.Configurations.consideringOnlyDependenciesInDiagram()
PlantUmlArchCondition.Configurations.consideringOnlyDependenciesInAnyPackage(String, String...)
A PlantUML diagram used with ArchUnit must abide by a certain set of rules:
- Components must have a name
- Components must have at least one stereotype. Each stereotype in the diagram must be unique
- Components may have an optional alias
- Components must be defined before declaring dependencies
- Dependencies must use arrows only consisting of dashes, pointing right, e.g.
-->
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PlantUmlArchCondition.Configurations
-
Method Summary
Modifier and Type Method Description static PlantUmlArchCondition
adhereToPlantUmlDiagram(java.io.File file, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)
static PlantUmlArchCondition
adhereToPlantUmlDiagram(java.lang.String fileName, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)
static PlantUmlArchCondition
adhereToPlantUmlDiagram(java.net.URL url, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)
static PlantUmlArchCondition
adhereToPlantUmlDiagram(java.nio.file.Path path, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)
void
check(JavaClass item, ConditionEvents events)
PlantUmlArchCondition
ignoreDependencies(DescribedPredicate<? super Dependency> ignorePredicate)
PlantUmlArchCondition
ignoreDependencies(java.lang.Class<?> origin, java.lang.Class<?> target)
PlantUmlArchCondition
ignoreDependencies(java.lang.String origin, java.lang.String target)
PlantUmlArchCondition
ignoreDependenciesWithOrigin(DescribedPredicate<? super JavaClass> ignorePredicate)
PlantUmlArchCondition
ignoreDependenciesWithTarget(DescribedPredicate<? super JavaClass> ignorePredicate)
Methods inherited from class com.tngtech.archunit.lang.ArchCondition
and, as, finish, forSubtype, forSubType, getDescription, init, or, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Method Details
-
ignoreDependenciesWithOrigin
@PublicAPI(usage=ACCESS) public PlantUmlArchCondition ignoreDependenciesWithOrigin(DescribedPredicate<? super JavaClass> ignorePredicate) -
ignoreDependenciesWithTarget
@PublicAPI(usage=ACCESS) public PlantUmlArchCondition ignoreDependenciesWithTarget(DescribedPredicate<? super JavaClass> ignorePredicate) -
ignoreDependencies
@PublicAPI(usage=ACCESS) public PlantUmlArchCondition ignoreDependencies(java.lang.Class<?> origin, java.lang.Class<?> target) -
ignoreDependencies
@PublicAPI(usage=ACCESS) public PlantUmlArchCondition ignoreDependencies(java.lang.String origin, java.lang.String target) -
ignoreDependencies
@PublicAPI(usage=ACCESS) public PlantUmlArchCondition ignoreDependencies(DescribedPredicate<? super Dependency> ignorePredicate) -
check
- Specified by:
check
in classArchCondition<JavaClass>
-
adhereToPlantUmlDiagram
@PublicAPI(usage=ACCESS) public static PlantUmlArchCondition adhereToPlantUmlDiagram(java.net.URL url, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)- See Also:
PlantUmlArchCondition
-
adhereToPlantUmlDiagram
@PublicAPI(usage=ACCESS) public static PlantUmlArchCondition adhereToPlantUmlDiagram(java.lang.String fileName, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)- See Also:
PlantUmlArchCondition
-
adhereToPlantUmlDiagram
@PublicAPI(usage=ACCESS) public static PlantUmlArchCondition adhereToPlantUmlDiagram(java.nio.file.Path path, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)- See Also:
PlantUmlArchCondition
-
adhereToPlantUmlDiagram
@PublicAPI(usage=ACCESS) public static PlantUmlArchCondition adhereToPlantUmlDiagram(java.io.File file, com.tngtech.archunit.library.plantuml.PlantUmlArchCondition.Configuration configuration)- See Also:
PlantUmlArchCondition
-