|
|
|
|
@ -22,14 +22,12 @@ import java.util.List;
@@ -22,14 +22,12 @@ import java.util.List;
|
|
|
|
|
import java.util.Objects; |
|
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
|
|
import org.springframework.aot.generate.GenerationContext; |
|
|
|
|
import org.springframework.aot.hint.MemberCategory; |
|
|
|
|
import org.springframework.aot.hint.TypeReference; |
|
|
|
|
import org.springframework.beans.BeansException; |
|
|
|
|
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; |
|
|
|
|
import org.springframework.beans.factory.aot.BeanFactoryInitializationAotContribution; |
|
|
|
|
import org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor; |
|
|
|
|
import org.springframework.beans.factory.aot.BeanFactoryInitializationCode; |
|
|
|
|
import org.springframework.beans.factory.config.BeanDefinition; |
|
|
|
|
import org.springframework.beans.factory.config.BeanFactoryPostProcessor; |
|
|
|
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; |
|
|
|
|
@ -121,26 +119,19 @@ class ServletComponentRegisteringPostProcessor
@@ -121,26 +119,19 @@ class ServletComponentRegisteringPostProcessor
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) { |
|
|
|
|
return new BeanFactoryInitializationAotContribution() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void applyTo(GenerationContext generationContext, |
|
|
|
|
BeanFactoryInitializationCode beanFactoryInitializationCode) { |
|
|
|
|
for (String beanName : beanFactory.getBeanDefinitionNames()) { |
|
|
|
|
BeanDefinition definition = beanFactory.getBeanDefinition(beanName); |
|
|
|
|
if (Objects.equals(definition.getBeanClassName(), |
|
|
|
|
WebListenerHandler.ServletComponentWebListenerRegistrar.class.getName())) { |
|
|
|
|
String listenerClassName = (String) definition.getConstructorArgumentValues() |
|
|
|
|
.getArgumentValue(0, String.class) |
|
|
|
|
.getValue(); |
|
|
|
|
generationContext.getRuntimeHints() |
|
|
|
|
.reflection() |
|
|
|
|
.registerType(TypeReference.of(listenerClassName), |
|
|
|
|
MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); |
|
|
|
|
} |
|
|
|
|
return (generationContext, beanFactoryInitializationCode) -> { |
|
|
|
|
for (String beanName : beanFactory.getBeanDefinitionNames()) { |
|
|
|
|
BeanDefinition definition = beanFactory.getBeanDefinition(beanName); |
|
|
|
|
if (Objects.equals(definition.getBeanClassName(), |
|
|
|
|
WebListenerHandler.ServletComponentWebListenerRegistrar.class.getName())) { |
|
|
|
|
String listenerClassName = (String) definition.getConstructorArgumentValues() |
|
|
|
|
.getArgumentValue(0, String.class) |
|
|
|
|
.getValue(); |
|
|
|
|
generationContext.getRuntimeHints() |
|
|
|
|
.reflection() |
|
|
|
|
.registerType(TypeReference.of(listenerClassName), MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|