diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 11dd9f3dae..b175558703 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -67,6 +67,10 @@ com.google.code.findbugs annotations + + jakarta.ws.rs + jakarta.ws.rs-api + diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/DiscoveryClientOptionalArgsConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/DiscoveryClientOptionalArgsConfiguration.java index 1dcb5903a5..6e4b1e7680 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/DiscoveryClientOptionalArgsConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/DiscoveryClientOptionalArgsConfiguration.java @@ -64,7 +64,7 @@ public TlsProperties tlsProperties() { @Bean @ConditionalOnClass(name = "org.springframework.web.client.RestTemplate") - @ConditionalOnMissingClass("com.sun.jersey.api.client.filter.ClientFilter") + @ConditionalOnMissingClass("jakarta.ws.rs.client.ClientRequestFilter") @ConditionalOnMissingBean(value = { AbstractDiscoveryClientOptionalArgs.class }, search = SearchStrategy.CURRENT) @ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled", matchIfMissing = true, havingValue = "false") @@ -80,7 +80,7 @@ public RestTemplateDiscoveryClientOptionalArgs restTemplateDiscoveryClientOption @Bean @ConditionalOnClass(name = "org.springframework.web.client.RestTemplate") - @ConditionalOnMissingClass("com.sun.jersey.api.client.filter.ClientFilter") + @ConditionalOnMissingClass("jakarta.ws.rs.client.ClientRequestFilter") @ConditionalOnMissingBean(value = { TransportClientFactories.class }, search = SearchStrategy.CURRENT) @ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled", matchIfMissing = true, havingValue = "false") @@ -118,7 +118,7 @@ static class DiscoveryClientOptionalArgsTlsConfiguration { } - @ConditionalOnMissingClass("com.sun.jersey.api.client.filter.ClientFilter") + @ConditionalOnMissingClass("jakarta.ws.rs.client.ClientRequestFilter") @ConditionalOnClass(name = "org.springframework.web.reactive.function.client.WebClient") @ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled", havingValue = "true") protected static class WebClientConfiguration { @@ -149,7 +149,7 @@ public WebClientTransportClientFactories webClientTransportClientFactories( } @Configuration - @ConditionalOnMissingClass({ "com.sun.jersey.api.client.filter.ClientFilter", + @ConditionalOnMissingClass({ "jakarta.ws.rs.client.ClientRequestFilter", "org.springframework.web.reactive.function.client.WebClient" }) @ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled", havingValue = "true") protected static class WebClientNotFoundConfiguration { diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java index 6aed5e520d..ec8f135dbe 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java @@ -28,8 +28,10 @@ import java.util.regex.Pattern; import com.netflix.appinfo.ApplicationInfoManager; +import com.netflix.discovery.AbstractDiscoveryClientOptionalArgs; import com.netflix.discovery.EurekaClient; import com.netflix.discovery.EurekaClientConfig; +import com.netflix.discovery.Jersey3DiscoveryClientOptionalArgs; import com.netflix.discovery.converters.EurekaJacksonCodec; import com.netflix.discovery.converters.wrappers.CodecWrapper; import com.netflix.discovery.converters.wrappers.CodecWrappers; @@ -192,10 +194,17 @@ public Jersey3TransportClientFactories jersey3TransportClientFactories() { @SuppressWarnings({ "rawtypes", "unchecked" }) @Bean + @ConditionalOnMissingBean(EurekaServerHttpClientFactory.class) public Jersey3EurekaServerHttpClientFactory jersey3EurekaServerHttpClientFactory() { return new Jersey3EurekaServerHttpClientFactory(); } + @Bean + @ConditionalOnMissingBean(AbstractDiscoveryClientOptionalArgs.class) + public Jersey3DiscoveryClientOptionalArgs jersey3DiscoveryClientOptionalArgs() { + return new Jersey3DiscoveryClientOptionalArgs(); + } + @Bean public PeerAwareInstanceRegistry peerAwareInstanceRegistry(ServerCodecs serverCodecs, EurekaServerHttpClientFactory eurekaServerHttpClientFactory) { diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java index c54ce93b13..3758dc69bc 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java @@ -44,7 +44,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; @SpringBootTest(classes = Application.class, webEnvironment = RANDOM_PORT, properties = { "spring.jmx.enabled=true", - "management.security.enabled=false", "management.endpoints.web.exposure.include=*" }) + "management.security.enabled=false", "management.endpoints.web.exposure.include=*", "debug=true" }) class ApplicationTests { private static final String BASE_PATH = new WebEndpointProperties().getBasePath();