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
The supported diagram syntax uses component diagram stereotypes to associate package patterns (compareclasses().should(adhereToPlantUmlDiagram(someDiagramUrl, consideringAllDependencies()));
PackageMatcher
) with components. An example could look like
Applying such a diagram as an ArchUnit rule would demand dependencies only from[Some Source] <<..some.source..>> [Some Target] <<..some.target..>> [Some Source] --> [Some Target]
..some.source..
to..some.target..
, but forbid them vice versa.
There are various factory method for different input formats (file, url, ...), compareadhereToPlantUmlDiagram(URL, Configuration)
adhereToPlantUmlDiagram(File, Configuration)
adhereToPlantUmlDiagram(Path, Configuration)
adhereToPlantUmlDiagram(String, Configuration)
PlantUmlArchCondition.Configuration
. Candidates arePlantUmlArchCondition.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
All Methods Static Methods Instance Methods Concrete Methods 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, getDescription, init, or, toString
-
-
-
-
Method Detail
-
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
public void check(JavaClass item, ConditionEvents events)
- 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
-
-