DockerComposeSkipCheck Class — spring-boot Architecture
Architecture documentation for the DockerComposeSkipCheck class in DockerComposeSkipCheck.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeSkipCheck.java lines 33–79
class DockerComposeSkipCheck {
private static final Set<String> REQUIRED_CLASSES = Set.of("org.junit.jupiter.api.Test", "org.junit.Test");
private static final Set<String> SKIPPED_STACK_ELEMENTS;
static {
Set<String> skipped = new LinkedHashSet<>();
skipped.add("org.junit.runners.");
skipped.add("org.junit.platform.");
skipped.add("org.springframework.boot.test.");
skipped.add(SpringApplicationAotProcessor.class.getName());
skipped.add("cucumber.runtime.");
SKIPPED_STACK_ELEMENTS = Collections.unmodifiableSet(skipped);
}
boolean shouldSkip(@Nullable ClassLoader classLoader, DockerComposeProperties.Skip properties) {
if (properties.isInTests() && hasAtLeastOneRequiredClass(classLoader)) {
Thread thread = Thread.currentThread();
for (StackTraceElement element : thread.getStackTrace()) {
if (isSkippedStackElement(element)) {
return true;
}
}
}
return false;
}
private boolean hasAtLeastOneRequiredClass(@Nullable ClassLoader classLoader) {
for (String requiredClass : REQUIRED_CLASSES) {
if (ClassUtils.isPresent(requiredClass, classLoader)) {
return true;
}
}
return false;
}
private static boolean isSkippedStackElement(StackTraceElement element) {
for (String skipped : SKIPPED_STACK_ELEMENTS) {
if (element.getClassName().startsWith(skipped)) {
return true;
}
}
return false;
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free