DependenciesIntoLayerSpec Class — spring-boot Architecture
Architecture documentation for the DependenciesIntoLayerSpec class in LayeredSpec.java from the spring-boot codebase.
Entity Profile
Source Code
build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/LayeredSpec.java lines 267–318
public static class DependenciesIntoLayerSpec extends IntoLayerSpec {
private boolean includeProjectDependencies;
private boolean excludeProjectDependencies;
/**
* Creates a new {@code IntoLayerSpec} that will control the content of the given
* layer.
* @param intoLayer the layer
*/
public DependenciesIntoLayerSpec(String intoLayer) {
super(intoLayer);
}
/**
* Configures the layer to include project dependencies. If no includes are
* specified then all content is included. If includes are specified then content
* must match an inclusion and not match any exclusions to be included.
*/
public void includeProjectDependencies() {
this.includeProjectDependencies = true;
}
/**
* Configures the layer to exclude project dependencies. If no excludes a
* specified no content is excluded. If exclusions are specified then any content
* that matches an exclusion will be excluded irrespective of whether it matches
* an include.
*/
public void excludeProjectDependencies() {
this.excludeProjectDependencies = true;
}
ContentSelector<Library> asLibrarySelector(Function<String, ContentFilter<Library>> filterFactory) {
Layer layer = new Layer(getIntoLayer());
List<ContentFilter<Library>> includeFilters = getIncludes().stream()
.map(filterFactory)
.collect(Collectors.toCollection(ArrayList::new));
if (this.includeProjectDependencies) {
includeFilters.add(Library::isLocal);
}
List<ContentFilter<Library>> excludeFilters = getExcludes().stream()
.map(filterFactory)
.collect(Collectors.toCollection(ArrayList::new));
if (this.excludeProjectDependencies) {
excludeFilters.add(Library::isLocal);
}
return new IncludeExcludeContentSelector<>(layer, includeFilters, excludeFilters);
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free