mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29135
This commit is contained in:
parent
92a0a1d2c6
commit
26cec61f32
@ -24,6 +24,7 @@ import io.micrometer.core.instrument.Tag;
|
||||
import io.micrometer.core.instrument.binder.MeterBinder;
|
||||
import io.micrometer.core.instrument.binder.cache.HazelcastCacheMetrics;
|
||||
|
||||
import org.springframework.aot.hint.ExecutableMode;
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.boot.actuate.metrics.cache.HazelcastCacheMeterBinderProvider.HazelcastCacheMeterBinderProviderRuntimeHints;
|
||||
@ -71,7 +72,8 @@ public class HazelcastCacheMeterBinderProvider implements CacheMeterBinderProvid
|
||||
Method getNativeCacheMethod = ReflectionUtils.findMethod(HazelcastCache.class, "getNativeCache");
|
||||
Assert.state(getNativeCacheMethod != null, "Unable to find 'getNativeCache' method");
|
||||
Constructor<?> constructor = HazelcastCacheMetrics.class.getConstructor(Object.class, Iterable.class);
|
||||
hints.reflection().registerMethod(getNativeCacheMethod).registerConstructor(constructor);
|
||||
hints.reflection().registerMethod(getNativeCacheMethod, ExecutableMode.INVOKE)
|
||||
.registerConstructor(constructor, ExecutableMode.INVOKE);
|
||||
}
|
||||
catch (NoSuchMethodException ex) {
|
||||
throw new IllegalStateException(ex);
|
||||
|
@ -30,6 +30,7 @@ import org.springframework.aot.generate.ClassNameGenerator;
|
||||
import org.springframework.aot.generate.DefaultGenerationContext;
|
||||
import org.springframework.aot.generate.FileSystemGeneratedFiles;
|
||||
import org.springframework.aot.generate.GeneratedFiles.Kind;
|
||||
import org.springframework.aot.hint.ExecutableMode;
|
||||
import org.springframework.aot.hint.ReflectionHints;
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.TypeReference;
|
||||
@ -154,8 +155,8 @@ public class AotProcessor {
|
||||
TypeReference applicationType = TypeReference.of(this.application);
|
||||
ReflectionHints reflection = generationContext.getRuntimeHints().reflection();
|
||||
reflection.registerType(applicationType);
|
||||
reflection.registerType(generatedType,
|
||||
(typeHint) -> typeHint.onReachableType(applicationType).withConstructor(Collections.emptyList()));
|
||||
reflection.registerType(generatedType, (typeHint) -> typeHint.onReachableType(applicationType)
|
||||
.withConstructor(Collections.emptyList(), ExecutableMode.INVOKE));
|
||||
}
|
||||
|
||||
private Path getRoot(Kind kind) {
|
||||
|
@ -107,11 +107,11 @@ public final class ConfigurationPropertiesReflectionHintsProcessor {
|
||||
|
||||
private void handleConstructor(ReflectionHints reflectionHints) {
|
||||
if (this.bindConstructor != null) {
|
||||
reflectionHints.registerConstructor(this.bindConstructor);
|
||||
reflectionHints.registerConstructor(this.bindConstructor, ExecutableMode.INVOKE);
|
||||
return;
|
||||
}
|
||||
Arrays.stream(this.type.getDeclaredConstructors()).filter(this::hasNoParameters).findFirst()
|
||||
.ifPresent(reflectionHints::registerConstructor);
|
||||
.ifPresent((constructor) -> reflectionHints.registerConstructor(constructor, ExecutableMode.INVOKE));
|
||||
}
|
||||
|
||||
private boolean hasNoParameters(Constructor<?> candidate) {
|
||||
|
@ -36,6 +36,7 @@ import java.util.function.Supplier;
|
||||
|
||||
import reactor.netty.http.client.HttpClientRequest;
|
||||
|
||||
import org.springframework.aot.hint.ExecutableMode;
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.aot.hint.TypeReference;
|
||||
@ -803,9 +804,10 @@ public class RestTemplateBuilder {
|
||||
ReflectionUtils.findField(AbstractClientHttpRequestFactoryWrapper.class, "requestFactory")));
|
||||
ClientHttpRequestFactorySupplier.ClientHttpRequestFactorySupplierRuntimeHints.registerHints(hints,
|
||||
classLoader, (hint) -> {
|
||||
hint.withMethod("setConnectTimeout", TypeReference.listOf(int.class));
|
||||
hint.withMethod("setReadTimeout", TypeReference.listOf(int.class));
|
||||
hint.withMethod("setBufferRequestBody", TypeReference.listOf(boolean.class));
|
||||
hint.withMethod("setConnectTimeout", TypeReference.listOf(int.class), ExecutableMode.INVOKE);
|
||||
hint.withMethod("setReadTimeout", TypeReference.listOf(int.class), ExecutableMode.INVOKE);
|
||||
hint.withMethod("setBufferRequestBody", TypeReference.listOf(boolean.class),
|
||||
ExecutableMode.INVOKE);
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user