diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHints.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHints.java index c7a3ba8e13..812c67f153 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHints.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHints.java @@ -21,28 +21,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.pattern.CallerDataConverter; -import ch.qos.logback.classic.pattern.ClassOfCallerConverter; -import ch.qos.logback.classic.pattern.ContextNameConverter; -import ch.qos.logback.classic.pattern.DateConverter; -import ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter; -import ch.qos.logback.classic.pattern.FileOfCallerConverter; -import ch.qos.logback.classic.pattern.LevelConverter; -import ch.qos.logback.classic.pattern.LineOfCallerConverter; -import ch.qos.logback.classic.pattern.LineSeparatorConverter; -import ch.qos.logback.classic.pattern.LocalSequenceNumberConverter; -import ch.qos.logback.classic.pattern.LoggerConverter; -import ch.qos.logback.classic.pattern.MDCConverter; -import ch.qos.logback.classic.pattern.MarkerConverter; -import ch.qos.logback.classic.pattern.MessageConverter; -import ch.qos.logback.classic.pattern.MethodOfCallerConverter; -import ch.qos.logback.classic.pattern.NopThrowableInformationConverter; -import ch.qos.logback.classic.pattern.PropertyConverter; -import ch.qos.logback.classic.pattern.RelativeTimeConverter; -import ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter; import ch.qos.logback.classic.pattern.SyslogStartConverter; -import ch.qos.logback.classic.pattern.ThreadConverter; -import ch.qos.logback.classic.pattern.ThrowableProxyConverter; import ch.qos.logback.core.rolling.helper.DateTokenConverter; import ch.qos.logback.core.rolling.helper.IntegerTokenConverter; import org.slf4j.bridge.SLF4JBridgeHandler; @@ -84,14 +63,8 @@ class LogbackRuntimeHints implements RuntimeHintsRegistrar { } private void registerHintsForBuiltInLogbackConverters(ReflectionHints reflection) { - registerForPublicConstructorInvocation(reflection, CallerDataConverter.class, ClassOfCallerConverter.class, - ContextNameConverter.class, DateConverter.class, DateTokenConverter.class, - ExtendedThrowableProxyConverter.class, FileOfCallerConverter.class, IntegerTokenConverter.class, - LevelConverter.class, LineOfCallerConverter.class, LineSeparatorConverter.class, - LocalSequenceNumberConverter.class, LoggerConverter.class, MarkerConverter.class, MDCConverter.class, - MessageConverter.class, MethodOfCallerConverter.class, NopThrowableInformationConverter.class, - PropertyConverter.class, RelativeTimeConverter.class, RootCauseFirstThrowableProxyConverter.class, - SyslogStartConverter.class, ThreadConverter.class, ThrowableProxyConverter.class); + registerForPublicConstructorInvocation(reflection, DateTokenConverter.class, IntegerTokenConverter.class, + SyslogStartConverter.class); } private void registerHintsForSpringBootConverters(ReflectionHints reflection) { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsTests.java index ed95307727..f541788e48 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsTests.java @@ -17,14 +17,13 @@ package org.springframework.boot.logging.logback; import java.io.IOException; -import java.lang.reflect.Modifier; import java.util.List; import java.util.function.Consumer; -import java.util.stream.Collectors; -import java.util.stream.Stream; import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.pattern.ClassicConverter; +import ch.qos.logback.classic.pattern.SyslogStartConverter; +import ch.qos.logback.core.rolling.helper.DateTokenConverter; +import ch.qos.logback.core.rolling.helper.IntegerTokenConverter; import org.junit.jupiter.api.Test; import org.slf4j.bridge.SLF4JBridgeHandler; @@ -32,10 +31,6 @@ import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.ReflectionHints; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.TypeHint; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.core.io.support.ResourcePatternResolver; -import org.springframework.util.ClassUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -90,30 +85,7 @@ class LogbackRuntimeHintsTests { } private List> logbackConverters() throws IOException { - ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); - Resource[] converterResources = resolver - .getResources("classpath:ch/qos/logback/classic/pattern/*Converter.class"); - return Stream.of(converterResources).map(this::className).map(this::load).filter(this::isConcreteConverter) - .collect(Collectors.toList()); - } - - private String className(Resource resource) { - String filename = resource.getFilename(); - filename = filename.substring(0, filename.length() - ".class".length()); - return "ch.qos.logback.classic.pattern." + filename; - } - - private Class load(String className) { - try { - return ClassUtils.forName(className, getClass().getClassLoader()); - } - catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - private boolean isConcreteConverter(Class candidate) { - return ClassicConverter.class.isAssignableFrom(candidate) && !Modifier.isAbstract(candidate.getModifiers()); + return List.of(DateTokenConverter.class, IntegerTokenConverter.class, SyslogStartConverter.class); } }