Skip to content

Commit fcc7577

Browse files
committed
Add runtime hints for ReactorClientHttpRequestFactory
See gh-42587
1 parent 6161ef7 commit fcc7577

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesRuntimeHints.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.http.client.ClientHttpRequestFactory;
3030
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
3131
import org.springframework.http.client.JettyClientHttpRequestFactory;
32+
import org.springframework.http.client.ReactorClientHttpRequestFactory;
3233
import org.springframework.http.client.SimpleClientHttpRequestFactory;
3334
import org.springframework.util.Assert;
3435
import org.springframework.util.ClassUtils;
@@ -63,6 +64,10 @@ private void registerHints(ReflectionHints hints, ClassLoader classLoader) {
6364
typeHint.onReachableType(HttpURLConnection.class);
6465
registerReflectionHints(hints, SimpleClientHttpRequestFactory.class);
6566
});
67+
hints.registerTypeIfPresent(classLoader, ClientHttpRequestFactories.REACTOR_CLIENT_CLASS, (typeHint) -> {
68+
typeHint.onReachableType(TypeReference.of(ClientHttpRequestFactories.REACTOR_CLIENT_CLASS));
69+
registerReflectionHints(hints, ReactorClientHttpRequestFactory.class, long.class);
70+
});
6671
}
6772

6873
private void registerReflectionHints(ReflectionHints hints,

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesRuntimeHintsTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper;
2828
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
2929
import org.springframework.http.client.JettyClientHttpRequestFactory;
30+
import org.springframework.http.client.ReactorClientHttpRequestFactory;
3031
import org.springframework.http.client.SimpleClientHttpRequestFactory;
3132
import org.springframework.util.ReflectionUtils;
3233

@@ -72,6 +73,17 @@ void shouldRegisterJettyClientHints() {
7273
.accepts(hints);
7374
}
7475

76+
@Test
77+
void shouldRegisterReactorHints() {
78+
RuntimeHints hints = new RuntimeHints();
79+
new ClientHttpRequestFactoriesRuntimeHints().registerHints(hints, getClass().getClassLoader());
80+
ReflectionHintsPredicates reflection = RuntimeHintsPredicates.reflection();
81+
assertThat(reflection.onMethod(method(ReactorClientHttpRequestFactory.class, "setConnectTimeout", int.class)))
82+
.accepts(hints);
83+
assertThat(reflection.onMethod(method(ReactorClientHttpRequestFactory.class, "setReadTimeout", long.class)))
84+
.accepts(hints);
85+
}
86+
7587
@Test
7688
void shouldRegisterSimpleHttpHints() {
7789
RuntimeHints hints = new RuntimeHints();

0 commit comments

Comments
 (0)