Skip to content

Commit e570ec2

Browse files
committed
Use server customizer for Eureka Jackson mappings in mock server
Possible after Boot addressed spring-projects/spring-boot#47798
1 parent 2122fa4 commit e570ec2

File tree

2 files changed

+13
-18
lines changed

2 files changed

+13
-18
lines changed

spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/EurekaServerMockApplication.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@
2727
import com.netflix.discovery.shared.Applications;
2828

2929
import org.springframework.boot.autoconfigure.SpringBootApplication;
30+
import org.springframework.boot.http.converter.autoconfigure.ServerHttpMessageConvertersCustomizer;
3031
import org.springframework.context.annotation.Bean;
3132
import org.springframework.context.annotation.Configuration;
3233
import org.springframework.core.Ordered;
3334
import org.springframework.core.annotation.Order;
3435
import org.springframework.http.HttpHeaders;
3536
import org.springframework.http.HttpStatus;
3637
import org.springframework.http.ResponseEntity;
37-
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
3838
import org.springframework.security.config.Customizer;
3939
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
4040
import org.springframework.security.core.userdetails.User;
@@ -111,15 +111,6 @@ public class EurekaServerMockApplication {
111111
.setNamespace("namespace1")
112112
.build();
113113

114-
/**
115-
* Simulates Eureka Server own's serialization.
116-
* @return converter
117-
*/
118-
@Bean
119-
public MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter() {
120-
return EurekaHttpClientUtils.mappingJacksonHttpMessageConverter();
121-
}
122-
123114
@ResponseStatus(HttpStatus.OK)
124115
@PostMapping("/apps/{appName}")
125116
public void register(@PathVariable String appName, @RequestBody InstanceInfo instanceInfo) {
@@ -189,6 +180,17 @@ public InstanceInfo getInstance(@PathVariable(required = false) String appName,
189180
return INFO;
190181
}
191182

183+
/*
184+
* Use this customizer to make sure we use the Jackson mappings for the Eureka server
185+
*/
186+
@Bean
187+
@Order
188+
ServerHttpMessageConvertersCustomizer customServerConvertersCustomizer() {
189+
return builder -> {
190+
builder.jsonMessageConverter(EurekaHttpClientUtils.mappingJacksonHttpMessageConverter());
191+
};
192+
}
193+
192194
@Configuration(proxyBeanMethods = false)
193195
@Order(Ordered.HIGHEST_PRECEDENCE)
194196
protected static class TestSecurityConfiguration {

spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClientTests.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,7 @@
3434
*/
3535
@SpringBootTest(classes = EurekaServerMockApplication.class,
3636
properties = { "debug=true", "security.basic.enabled=true", "eureka.client.webclient.enabled=true",
37-
"eureka.client.fetch-registry=false", "eureka.client.register-with-eureka=false",
38-
// spring.http.converters.preferred-json-mapper=jackson2 is only necessary
39-
// to make the
40-
// mock Eureka Server used in this test to work
41-
// TODO we can likely remove this once this Boot issue is fixed post
42-
// 2025.1.0-RC1:
43-
// https://github.com/spring-projects/spring-boot/issues/47798
44-
"spring.http.converters.preferred-json-mapper=jackson2" },
37+
"eureka.client.fetch-registry=false", "eureka.client.register-with-eureka=false" },
4538
webEnvironment = WebEnvironment.RANDOM_PORT)
4639
@DirtiesContext
4740
class WebClientEurekaHttpClientTests extends AbstractEurekaHttpClientTests {

0 commit comments

Comments
 (0)