|
1 | 1 | package org.springframework.hateoas.config;
|
2 | 2 |
|
| 3 | +import com.fasterxml.jackson.databind.ObjectMapper; |
3 | 4 | import lombok.RequiredArgsConstructor;
|
4 |
| - |
5 |
| -import java.util.ArrayList; |
6 |
| -import java.util.Collection; |
7 |
| -import java.util.List; |
8 |
| - |
9 | 5 | import org.springframework.context.annotation.Configuration;
|
10 | 6 | import org.springframework.core.codec.CharSequenceEncoder;
|
11 | 7 | import org.springframework.core.codec.Decoder;
|
12 | 8 | import org.springframework.core.codec.Encoder;
|
13 | 9 | import org.springframework.core.codec.StringDecoder;
|
14 | 10 | import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
| 11 | +import org.springframework.hateoas.support.SpringUtilities; |
15 | 12 | import org.springframework.http.codec.json.Jackson2JsonDecoder;
|
16 | 13 | import org.springframework.http.codec.json.Jackson2JsonEncoder;
|
17 | 14 | import org.springframework.util.MimeType;
|
18 | 15 | import org.springframework.web.reactive.function.client.ExchangeStrategies;
|
19 | 16 | import org.springframework.web.reactive.function.client.WebClient;
|
20 | 17 |
|
21 |
| -import com.fasterxml.jackson.databind.ObjectMapper; |
| 18 | +import java.util.ArrayList; |
| 19 | +import java.util.Collection; |
| 20 | +import java.util.List; |
22 | 21 |
|
23 | 22 | /**
|
24 | 23 | * Assembles {@link ExchangeStrategies} needed to wire a {@link WebClient} with hypermedia support.
|
@@ -52,15 +51,21 @@ public ExchangeStrategies hypermediaExchangeStrategies() {
|
52 | 51 | decoders.add(new Jackson2JsonDecoder(objectMapper, mimeTypes));
|
53 | 52 | });
|
54 | 53 |
|
55 |
| - encoders.add(CharSequenceEncoder.allMimeTypes()); |
56 |
| - decoders.add(StringDecoder.allMimeTypes()); |
| 54 | + if (SpringUtilities.isSpring5_1()) { |
| 55 | + |
| 56 | + encoders.add(CharSequenceEncoder.allMimeTypes()); |
| 57 | + decoders.add(StringDecoder.allMimeTypes()); |
| 58 | + } |
57 | 59 |
|
58 | 60 | return ExchangeStrategies.builder().codecs(clientCodecConfigurer -> {
|
59 | 61 |
|
60 | 62 | encoders.forEach(encoder -> clientCodecConfigurer.customCodecs().encoder(encoder));
|
61 | 63 | decoders.forEach(decoder -> clientCodecConfigurer.customCodecs().decoder(decoder));
|
62 | 64 |
|
63 |
| - clientCodecConfigurer.registerDefaults(false); |
| 65 | + if (SpringUtilities.isSpring5_1()) { |
| 66 | + clientCodecConfigurer.registerDefaults(false); |
| 67 | + } |
| 68 | + |
64 | 69 | }).build();
|
65 | 70 | }
|
66 | 71 |
|
|
0 commit comments