Add ReactiveResponseConsumer classpath check to http5 auto-configuration

Closes gh-34964
This commit is contained in:
Moritz Halbritter
2023-05-10 10:47:08 +02:00
parent 947ac8df73
commit ec4d52e381
3 changed files with 15 additions and 2 deletions

View File

@@ -24,8 +24,10 @@ import org.eclipse.jetty.util.thread.Scheduler;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.reactive.HttpComponentsClientHttpConnector;
import org.springframework.http.client.reactive.JettyClientHttpConnector;
import org.springframework.http.client.reactive.JettyResourceFactory;
import org.springframework.test.util.ReflectionTestUtils;
@@ -38,6 +40,7 @@ import static org.mockito.Mockito.mock;
*
* @author Phillip Webb
* @author Brian Clozel
* @author Moritz Halbritter
*/
class ClientHttpConnectorConfigurationTests {
@@ -83,6 +86,14 @@ class ClientHttpConnectorConfigurationTests {
});
}
@Test
void shouldNotConfigureReactiveHttpClient5WhenHttpCore5ReactiveJarIsMissing() {
new ReactiveWebApplicationContextRunner()
.withClassLoader(new FilteredClassLoader("org.apache.hc.core5.reactive"))
.withConfiguration(AutoConfigurations.of(ClientHttpConnectorConfiguration.HttpClient5.class))
.run((context) -> assertThat(context).doesNotHaveBean(HttpComponentsClientHttpConnector.class));
}
static class CustomHttpClientMapper {
static boolean called = false;