Browse Source

Suppress warnings in JsonMixin AOT-generated code

Closes gh-48564
pull/47260/merge
Stéphane Nicoll 1 day ago
parent
commit
2754aaef57
  1. 11
      module/spring-boot-jackson2/src/main/java/org/springframework/boot/jackson2/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java
  2. 5
      module/spring-boot-jackson2/src/test/java/org/springframework/boot/jackson2/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java

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

@ -33,6 +33,7 @@ import org.springframework.beans.factory.aot.BeanRegistrationAotProcessor; @@ -33,6 +33,7 @@ import org.springframework.beans.factory.aot.BeanRegistrationAotProcessor;
import org.springframework.beans.factory.aot.BeanRegistrationCode;
import org.springframework.beans.factory.aot.BeanRegistrationCodeFragments;
import org.springframework.beans.factory.aot.BeanRegistrationCodeFragmentsDecorator;
import org.springframework.beans.factory.aot.CodeWarnings;
import org.springframework.beans.factory.support.RegisteredBean;
import org.springframework.javapoet.ClassName;
import org.springframework.javapoet.CodeBlock;
@ -87,9 +88,15 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessor implements BeanRegistra @@ -87,9 +88,15 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessor implements BeanRegistra
method.addModifiers(Modifier.PRIVATE, Modifier.STATIC);
method.returns(BEAN_TYPE);
CodeBlock.Builder code = CodeBlock.builder();
code.add("return $T.create(", JsonMixinModuleEntries.class).beginControlFlow("(mixins) ->");
entries.doWithEntry(this.classLoader, (type, mixin) -> addEntryCode(code, type, mixin));
CodeWarnings codeWarnings = new CodeWarnings();
codeWarnings.detectDeprecation(BEAN_TYPE);
code.add("return $T.create(", BEAN_TYPE).beginControlFlow("(mixins) ->");
entries.doWithEntry(this.classLoader, (type, mixin) -> {
codeWarnings.detectDeprecation(type, mixin);
addEntryCode(code, type, mixin);
});
code.endControlFlow(")");
codeWarnings.suppress(method);
method.addCode(code.build());
});
return generatedMethod.toMethodReference().toCodeBlock();

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

@ -109,7 +109,10 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessorTests { @@ -109,7 +109,10 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessorTests {
@SuppressWarnings("unchecked")
private void compile(BiConsumer<GenericApplicationContext, Compiled> result) {
ClassName className = processAheadOfTime();
TestCompiler.forSystem().with(this.generationContext).compile((compiled) -> {
TestCompiler.forSystem()
.withCompilerOptions("-Xlint:all", "-Werror")
.with(this.generationContext)
.compile((compiled) -> {
GenericApplicationContext freshApplicationContext = new GenericApplicationContext();
ApplicationContextInitializer<GenericApplicationContext> initializer = compiled
.getInstance(ApplicationContextInitializer.class, className.toString());

Loading…
Cancel
Save