1818
1919import java .lang .reflect .Field ;
2020import java .lang .reflect .Method ;
21+ import java .time .Duration ;
2122
2223import org .junit .jupiter .api .Test ;
2324
2627import org .springframework .aot .hint .predicate .RuntimeHintsPredicates ;
2728import org .springframework .http .client .AbstractClientHttpRequestFactoryWrapper ;
2829import org .springframework .http .client .HttpComponentsClientHttpRequestFactory ;
30+ import org .springframework .http .client .JdkClientHttpRequestFactory ;
2931import org .springframework .http .client .JettyClientHttpRequestFactory ;
3032import org .springframework .http .client .ReactorClientHttpRequestFactory ;
3133import org .springframework .http .client .SimpleClientHttpRequestFactory ;
@@ -60,6 +62,15 @@ void shouldRegisterHttpComponentHints() {
6062 assertThat (reflection
6163 .onMethod (method (HttpComponentsClientHttpRequestFactory .class , "setConnectTimeout" , int .class )))
6264 .accepts (hints );
65+ assertThat (reflection
66+ .onMethod (method (HttpComponentsClientHttpRequestFactory .class , "setConnectTimeout" , Duration .class )))
67+ .accepts (hints );
68+ assertThat (
69+ reflection .onMethod (method (HttpComponentsClientHttpRequestFactory .class , "setReadTimeout" , int .class )))
70+ .accepts (hints );
71+ assertThat (reflection
72+ .onMethod (method (HttpComponentsClientHttpRequestFactory .class , "setReadTimeout" , Duration .class )))
73+ .accepts (hints );
6374 }
6475
6576 @ Test
@@ -69,8 +80,13 @@ void shouldRegisterJettyClientHints() {
6980 ReflectionHintsPredicates reflection = RuntimeHintsPredicates .reflection ();
7081 assertThat (reflection .onMethod (method (JettyClientHttpRequestFactory .class , "setConnectTimeout" , int .class )))
7182 .accepts (hints );
83+ assertThat (
84+ reflection .onMethod (method (JettyClientHttpRequestFactory .class , "setConnectTimeout" , Duration .class )))
85+ .accepts (hints );
7286 assertThat (reflection .onMethod (method (JettyClientHttpRequestFactory .class , "setReadTimeout" , long .class )))
7387 .accepts (hints );
88+ assertThat (reflection .onMethod (method (JettyClientHttpRequestFactory .class , "setReadTimeout" , Duration .class )))
89+ .accepts (hints );
7490 }
7591
7692 @ Test
@@ -80,8 +96,13 @@ void shouldRegisterReactorHints() {
8096 ReflectionHintsPredicates reflection = RuntimeHintsPredicates .reflection ();
8197 assertThat (reflection .onMethod (method (ReactorClientHttpRequestFactory .class , "setConnectTimeout" , int .class )))
8298 .accepts (hints );
99+ assertThat (
100+ reflection .onMethod (method (ReactorClientHttpRequestFactory .class , "setConnectTimeout" , Duration .class )))
101+ .accepts (hints );
83102 assertThat (reflection .onMethod (method (ReactorClientHttpRequestFactory .class , "setReadTimeout" , long .class )))
84103 .accepts (hints );
104+ assertThat (reflection .onMethod (method (ReactorClientHttpRequestFactory .class , "setReadTimeout" , Duration .class )))
105+ .accepts (hints );
85106 }
86107
87108 @ Test
@@ -91,8 +112,24 @@ void shouldRegisterSimpleHttpHints() {
91112 ReflectionHintsPredicates reflection = RuntimeHintsPredicates .reflection ();
92113 assertThat (reflection .onMethod (method (SimpleClientHttpRequestFactory .class , "setConnectTimeout" , int .class )))
93114 .accepts (hints );
115+ assertThat (
116+ reflection .onMethod (method (SimpleClientHttpRequestFactory .class , "setConnectTimeout" , Duration .class )))
117+ .accepts (hints );
94118 assertThat (reflection .onMethod (method (SimpleClientHttpRequestFactory .class , "setReadTimeout" , int .class )))
95119 .accepts (hints );
120+ assertThat (reflection .onMethod (method (SimpleClientHttpRequestFactory .class , "setReadTimeout" , Duration .class )))
121+ .accepts (hints );
122+ }
123+
124+ @ Test
125+ void shouldRegisterJdkHttpHints () {
126+ RuntimeHints hints = new RuntimeHints ();
127+ new ClientHttpRequestFactoryRuntimeHints ().registerHints (hints , getClass ().getClassLoader ());
128+ ReflectionHintsPredicates reflection = RuntimeHintsPredicates .reflection ();
129+ assertThat (reflection .onMethod (method (JdkClientHttpRequestFactory .class , "setReadTimeout" , int .class )))
130+ .accepts (hints );
131+ assertThat (reflection .onMethod (method (JdkClientHttpRequestFactory .class , "setReadTimeout" , Duration .class )))
132+ .accepts (hints );
96133 }
97134
98135 private static Method method (Class <?> target , String name , Class <?>... parameterTypes ) {
0 commit comments