Skip to content

Commit 2754aae

Browse files
committed
Suppress warnings in JsonMixin AOT-generated code
Closes gh-48564
1 parent 8273bf4 commit 2754aae

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

module/spring-boot-jackson2/src/main/java/org/springframework/boot/jackson2/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.beans.factory.aot.BeanRegistrationCode;
3434
import org.springframework.beans.factory.aot.BeanRegistrationCodeFragments;
3535
import org.springframework.beans.factory.aot.BeanRegistrationCodeFragmentsDecorator;
36+
import org.springframework.beans.factory.aot.CodeWarnings;
3637
import org.springframework.beans.factory.support.RegisteredBean;
3738
import org.springframework.javapoet.ClassName;
3839
import org.springframework.javapoet.CodeBlock;
@@ -87,9 +88,15 @@ public CodeBlock generateInstanceSupplierCode(GenerationContext generationContex
8788
method.addModifiers(Modifier.PRIVATE, Modifier.STATIC);
8889
method.returns(BEAN_TYPE);
8990
CodeBlock.Builder code = CodeBlock.builder();
90-
code.add("return $T.create(", JsonMixinModuleEntries.class).beginControlFlow("(mixins) ->");
91-
entries.doWithEntry(this.classLoader, (type, mixin) -> addEntryCode(code, type, mixin));
91+
CodeWarnings codeWarnings = new CodeWarnings();
92+
codeWarnings.detectDeprecation(BEAN_TYPE);
93+
code.add("return $T.create(", BEAN_TYPE).beginControlFlow("(mixins) ->");
94+
entries.doWithEntry(this.classLoader, (type, mixin) -> {
95+
codeWarnings.detectDeprecation(type, mixin);
96+
addEntryCode(code, type, mixin);
97+
});
9298
code.endControlFlow(")");
99+
codeWarnings.suppress(method);
93100
method.addCode(code.build());
94101
});
95102
return generatedMethod.toMethodReference().toCodeBlock();

module/spring-boot-jackson2/src/test/java/org/springframework/boot/jackson2/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,17 @@ private ClassName processAheadOfTime() {
109109
@SuppressWarnings("unchecked")
110110
private void compile(BiConsumer<GenericApplicationContext, Compiled> result) {
111111
ClassName className = processAheadOfTime();
112-
TestCompiler.forSystem().with(this.generationContext).compile((compiled) -> {
113-
GenericApplicationContext freshApplicationContext = new GenericApplicationContext();
114-
ApplicationContextInitializer<GenericApplicationContext> initializer = compiled
115-
.getInstance(ApplicationContextInitializer.class, className.toString());
116-
initializer.initialize(freshApplicationContext);
117-
freshApplicationContext.refresh();
118-
result.accept(freshApplicationContext, compiled);
119-
});
112+
TestCompiler.forSystem()
113+
.withCompilerOptions("-Xlint:all", "-Werror")
114+
.with(this.generationContext)
115+
.compile((compiled) -> {
116+
GenericApplicationContext freshApplicationContext = new GenericApplicationContext();
117+
ApplicationContextInitializer<GenericApplicationContext> initializer = compiled
118+
.getInstance(ApplicationContextInitializer.class, className.toString());
119+
initializer.initialize(freshApplicationContext);
120+
freshApplicationContext.refresh();
121+
result.accept(freshApplicationContext, compiled);
122+
});
120123
}
121124

122125
private void registerEntries(Class<?>... basePackageClasses) {

0 commit comments

Comments
 (0)