Implement RuntimeHintsRegistrar

See gh-44266
This commit is contained in:
Tran Ngoc Nhan 2025-02-14 00:26:01 +07:00 committed by Stéphane Nicoll
parent d9c54312d8
commit e982136f5e
3 changed files with 17 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.RuntimeHintsRegistrar;
import org.springframework.boot.autoconfigure.template.PathBasedTemplateAvailabilityProvider; import org.springframework.boot.autoconfigure.template.PathBasedTemplateAvailabilityProvider;
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider; import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider;
import org.springframework.boot.context.properties.bind.BindableRuntimeHintsRegistrar; import org.springframework.boot.context.properties.bind.BindableRuntimeHintsRegistrar;
@ -65,16 +66,13 @@ public class FreeMarkerTemplateAvailabilityProvider extends PathBasedTemplateAva
} }
static class FreeMarkerTemplateAvailabilityRuntimeHints extends BindableRuntimeHintsRegistrar { static class FreeMarkerTemplateAvailabilityRuntimeHints implements RuntimeHintsRegistrar {
FreeMarkerTemplateAvailabilityRuntimeHints() {
super(FreeMarkerTemplateAvailabilityProperties.class);
}
@Override @Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader) { public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
if (ClassUtils.isPresent(REQUIRED_CLASS_NAME, classLoader)) { if (ClassUtils.isPresent(REQUIRED_CLASS_NAME, classLoader)) {
super.registerHints(hints, classLoader); BindableRuntimeHintsRegistrar.forTypes(FreeMarkerTemplateAvailabilityProperties.class)
.registerHints(hints, classLoader);
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.RuntimeHintsRegistrar;
import org.springframework.boot.autoconfigure.template.PathBasedTemplateAvailabilityProvider; import org.springframework.boot.autoconfigure.template.PathBasedTemplateAvailabilityProvider;
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider; import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider;
import org.springframework.boot.context.properties.bind.BindableRuntimeHintsRegistrar; import org.springframework.boot.context.properties.bind.BindableRuntimeHintsRegistrar;
@ -65,16 +66,13 @@ public class GroovyTemplateAvailabilityProvider extends PathBasedTemplateAvailab
} }
static class GroovyTemplateAvailabilityRuntimeHints extends BindableRuntimeHintsRegistrar { static class GroovyTemplateAvailabilityRuntimeHints implements RuntimeHintsRegistrar {
GroovyTemplateAvailabilityRuntimeHints() {
super(GroovyTemplateAvailabilityProperties.class);
}
@Override @Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader) { public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
if (ClassUtils.isPresent(REQUIRED_CLASS_NAME, classLoader)) { if (ClassUtils.isPresent(REQUIRED_CLASS_NAME, classLoader)) {
super.registerHints(hints, classLoader); BindableRuntimeHintsRegistrar.forTypes(GroovyTemplateAvailabilityProperties.class)
.registerHints(hints, classLoader);
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2024 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,6 +16,8 @@
package org.springframework.boot.autoconfigure.http; package org.springframework.boot.autoconfigure.http;
import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.RuntimeHintsRegistrar;
import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@ -100,10 +102,11 @@ public class HttpMessageConvertersAutoConfiguration {
} }
static class HttpMessageConvertersAutoConfigurationRuntimeHints extends BindableRuntimeHintsRegistrar { static class HttpMessageConvertersAutoConfigurationRuntimeHints implements RuntimeHintsRegistrar {
HttpMessageConvertersAutoConfigurationRuntimeHints() { @Override
super(Encoding.class); public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
BindableRuntimeHintsRegistrar.forTypes(Encoding.class).registerHints(hints, classLoader);
} }
} }