Remove duplicate reflection hints for Logback
Prior to this commit, the Spring Boot team contributed reflection hints for the default Logback converters for native image compilation. Now that some of those hints were contributed to the GraalVM reachability metadata repository, we can safely remove the duplicates. Closes gh-31959
This commit is contained in:
parent
eaf8683e8d
commit
09c753d445
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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<Class<?>> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue