22
33package { {invokerPackage} };
44
5+ { {^useJackson3} }
56import com.fasterxml.jackson.core.JsonProcessingException;
67import com.fasterxml.jackson.databind.DeserializationFeature;
78import com.fasterxml.jackson.databind.ObjectMapper;
89import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
10+ { {/useJackson3} }
11+ { {#useJackson3} }
12+ import tools.jackson.databind.DeserializationFeature;
13+ import tools.jackson.databind.json.JsonMapper;
14+ { {/useJackson3} }
915{ {#openApiNullable} }
16+ { {^useJackson3} }
1017import org.openapitools.jackson.nullable.JsonNullableModule;
18+ { {/useJackson3} }
19+ { {#useJackson3} }
20+ import org.openapitools.jackson.nullable.JsonNullableJackson3Module;
21+ { {/useJackson3} }
1122{ {/openApiNullable} }
1223{ {#generateClientAsBean} }
1324import org.springframework.beans.factory.annotation.Autowired;
@@ -27,8 +38,14 @@ import org.springframework.http.client.ClientHttpRequestExecution;
2738import org.springframework.http.client.ClientHttpRequestInterceptor;
2839import org.springframework.http.client.ClientHttpResponse;
2940import org.springframework.http.client.reactive.ClientHttpRequest;
41+ { {^useJackson3} }
3042import org.springframework.http.codec.json.Jackson2JsonDecoder;
3143import org.springframework.http.codec.json.Jackson2JsonEncoder;
44+ { {/useJackson3} }
45+ { {#useJackson3} }
46+ import org.springframework.http.codec.json.JacksonJsonDecoder;
47+ import org.springframework.http.codec.json.JacksonJsonEncoder;
48+ { {/useJackson3} }
3249{ {#generateClientAsBean} }
3350import org.springframework.stereotype.Component;
3451{ {/generateClientAsBean} }
@@ -110,15 +127,15 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
110127
111128 protected final WebClient webClient;
112129 protected final DateFormat dateFormat;
113- protected final ObjectMapper objectMapper ;
130+ protected final { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper ;
114131
115132 protected Map<String , Authentication > authentications;
116133
117134
118135 public ApiClient() {
119136 this.dateFormat = createDefaultDateFormat();
120- this.objectMapper = createDefaultObjectMapper (this.dateFormat);
121- this.webClient = buildWebClient(this.objectMapper );
137+ this.mapper = createDefaultMapper (this.dateFormat);
138+ this.webClient = buildWebClient(this.mapper );
122139 this.init();
123140 }
124141
@@ -129,18 +146,18 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
129146 this(Optional.ofNullable(webClient).orElseGet(() -> buildWebClient()), createDefaultDateFormat());
130147 }
131148
132- public ApiClient(ObjectMapper mapper, DateFormat format) {
133- this(buildWebClient(mapper.copy()), format);
149+ public ApiClient({ {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper, DateFormat format) {
150+ this(buildWebClient(mapper{{^useJackson3 } } .copy(){ {/useJackson3 } } ), format);
134151 }
135152
136- public ApiClient(WebClient webClient, ObjectMapper mapper, DateFormat format) {
137- this(Optional.ofNullable(webClient).orElseGet(() -> buildWebClient(mapper.copy())), format);
153+ public ApiClient(WebClient webClient, { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper, DateFormat format) {
154+ this(Optional.ofNullable(webClient).orElseGet(() -> buildWebClient(mapper{{^useJackson3 } } .copy(){ {/useJackson3 } } )), format);
138155 }
139156
140157 protected ApiClient(WebClient webClient, DateFormat format) {
141158 this.webClient = webClient;
142159 this.dateFormat = format;
143- this.objectMapper = createDefaultObjectMapper (format);
160+ this.mapper = createDefaultMapper (format);
144161 this.init();
145162 }
146163
@@ -150,10 +167,11 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
150167 return dateFormat;
151168 }
152169
153- public static ObjectMapper createDefaultObjectMapper (@Nullable DateFormat dateFormat) {
170+ public static { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } createDefaultMapper (@Nullable DateFormat dateFormat) {
154171 if (null == dateFormat) {
155172 dateFormat = createDefaultDateFormat();
156173 }
174+ { {^useJackson3} }
157175 ObjectMapper mapper = new ObjectMapper();
158176 mapper.setDateFormat(dateFormat);
159177 mapper.registerModule(new JavaTimeModule());
@@ -163,6 +181,14 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
163181 mapper.registerModule(jnm);
164182 { {/openApiNullable} }
165183 return mapper;
184+ { {/useJackson3} }
185+ { {#useJackson3} }
186+ return JsonMapper
187+ .builder()
188+ .defaultDateFormat(dateFormat)
189+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, { {failOnUnknownProperties} })
190+ .build();
191+ { {/useJackson3} }
166192 }
167193
168194 protected void init() {
@@ -178,15 +204,21 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
178204
179205 /**
180206 * Build the WebClientBuilder used to make WebClient.
181- * @param mapper ObjectMapper used for serialize/deserialize
207+ * @param mapper { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } used for serialize/deserialize
182208 * @return WebClient
183209 */
184- public static WebClient.Builder buildWebClientBuilder(ObjectMapper mapper) {
210+ public static WebClient.Builder buildWebClientBuilder({ {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper) {
185211 ExchangeStrategies strategies = ExchangeStrategies
186212 .builder()
187213 .codecs(clientDefaultCodecsConfigurer -> {
214+ {{^useJackson3} }
188215 clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(mapper, MediaType.APPLICATION_JSON));
189216 clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(mapper, MediaType.APPLICATION_JSON));
217+ { {/useJackson3} }
218+ { {#useJackson3} }
219+ clientDefaultCodecsConfigurer.defaultCodecs().jacksonJsonEncoder(new JacksonJsonEncoder(mapper));
220+ clientDefaultCodecsConfigurer.defaultCodecs().jacksonJsonDecoder(new JacksonJsonDecoder(mapper));
221+ { {/useJackson3} }
190222 }).build();
191223 WebClient.Builder webClientBuilder = WebClient.builder().exchangeStrategies(strategies);
192224 return webClientBuilder;
@@ -197,15 +229,15 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
197229 * @return WebClient
198230 */
199231 public static WebClient.Builder buildWebClientBuilder() {
200- return buildWebClientBuilder(createDefaultObjectMapper (null));
232+ return buildWebClientBuilder(createDefaultMapper (null));
201233 }
202234
203235 /**
204236 * Build the WebClient used to make HTTP requests.
205- * @param mapper ObjectMapper used for serialize/deserialize
237+ * @param mapper { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } used for serialize/deserialize
206238 * @return WebClient
207239 */
208- public static WebClient buildWebClient(ObjectMapper mapper) {
240+ public static WebClient buildWebClient({ {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper) {
209241 return buildWebClientBuilder(mapper).build();
210242 }
211243
@@ -214,7 +246,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
214246 * @return WebClient
215247 */
216248 public static WebClient buildWebClient() {
217- return buildWebClientBuilder(createDefaultObjectMapper (null)).build();
249+ return buildWebClientBuilder(createDefaultMapper (null)).build();
218250 }
219251
220252 /**
@@ -403,11 +435,11 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
403435 }
404436
405437 /**
406- * Get the ObjectMapper used to make HTTP requests.
407- * @return ObjectMapper objectMapper
438+ * Get the { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } used to make HTTP requests.
439+ * @return { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } mapper
408440 */
409- public ObjectMapper getObjectMapper () {
410- return objectMapper ;
441+ public { {^useJackson3 } } ObjectMapper{ {/useJackson3 } } { {#useJackson3 } }JsonMapper { {/useJackson3 } } getMapper () {
442+ return mapper ;
411443 }
412444
413445 /**
@@ -456,20 +488,30 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
456488 if (value instanceof Collection) {
457489 valueCollection = (Collection< ?> ) value;
458490 } else {
491+ {{^useJackson3} }
459492 try {
460- return parameterToMultiValueMap(collectionFormat, name, objectMapper .writeValueAsString(value));
493+ return parameterToMultiValueMap(collectionFormat, name, mapper .writeValueAsString(value));
461494 } catch (JsonProcessingException e) {
462495 throw new RuntimeException(e);
463496 }
497+ { {/useJackson3} }
498+ { {#useJackson3} }
499+ return parameterToMultiValueMap(collectionFormat, name, mapper.writeValueAsString(value));
500+ { {/useJackson3} }
464501 }
465502
466503 List<String > values = new ArrayList<> ();
467504 for(Object o : valueCollection) {
505+ {{^useJackson3} }
468506 try {
469- values.add(objectMapper .writeValueAsString(o));
507+ values.add(mapper .writeValueAsString(o));
470508 } catch (JsonProcessingException e) {
471509 throw new RuntimeException(e);
472510 }
511+ { {/useJackson3} }
512+ { {#useJackson3} }
513+ values.add(mapper.writeValueAsString(o));
514+ { {/useJackson3} }
473515 }
474516 return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]");
475517 }
0 commit comments