Skip to content

Commit 8a51e31

Browse files
committed
Make sure that AnnotationAwareOrderComparator is configured with AOT
Closes gh-28988
1 parent 9b2a40a commit 8a51e31

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

Diff for: spring-context/src/main/java/org/springframework/context/aot/ApplicationContextInitializationCodeGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.context.ApplicationContextInitializer;
3131
import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver;
3232
import org.springframework.context.support.GenericApplicationContext;
33+
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
3334
import org.springframework.javapoet.CodeBlock;
3435
import org.springframework.javapoet.MethodSpec;
3536
import org.springframework.javapoet.ParameterizedTypeName;
@@ -85,6 +86,8 @@ private CodeBlock generateInitializeCode() {
8586
APPLICATION_CONTEXT_VARIABLE);
8687
builder.addStatement("$L.setAutowireCandidateResolver(new $T())",
8788
BEAN_FACTORY_VARIABLE, ContextAnnotationAutowireCandidateResolver.class);
89+
builder.addStatement("$L.setDependencyComparator($T.INSTANCE)",
90+
BEAN_FACTORY_VARIABLE, AnnotationAwareOrderComparator.class);
8891
for (MethodReference initializer : this.initializers) {
8992
builder.addStatement(initializer.toInvokeCodeBlock(CodeBlock.of(BEAN_FACTORY_VARIABLE)));
9093
}

Diff for: spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotGeneratorTests.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,9 @@ void processAheadOfTimeWhenHasNoAotContributions() {
141141
testCompiledResult(applicationContext, (initializer, compiled) -> {
142142
GenericApplicationContext freshApplicationContext = toFreshApplicationContext(initializer);
143143
assertThat(freshApplicationContext.getBeanDefinitionNames()).isEmpty();
144-
assertThat(compiled.getSourceFile()).contains(
145-
"beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())");
144+
assertThat(compiled.getSourceFile())
145+
.contains("beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())")
146+
.contains("beanFactory.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE)");
146147
});
147148
}
148149

0 commit comments

Comments
 (0)