github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/rest-assured/JacksonObjectMapper.mustache (about) 1 {{>licenseInfo}} 2 3 package {{invokerPackage}}; 4 5 {{#threetenbp}} 6 import org.threeten.bp.*; 7 {{/threetenbp}} 8 import com.fasterxml.jackson.annotation.*; 9 import com.fasterxml.jackson.databind.*; 10 import org.openapitools.jackson.nullable.JsonNullableModule; 11 {{#java8}} 12 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 13 {{/java8}} 14 {{#joda}} 15 import com.fasterxml.jackson.datatype.joda.JodaModule; 16 {{/joda}} 17 {{#threetenbp}} 18 import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule; 19 {{/threetenbp}} 20 21 import io.restassured.internal.mapping.Jackson2Mapper; 22 import io.restassured.path.json.mapper.factory.Jackson2ObjectMapperFactory; 23 24 25 public class JacksonObjectMapper extends Jackson2Mapper { 26 27 private JacksonObjectMapper() { 28 super(createFactory()); 29 } 30 31 private static Jackson2ObjectMapperFactory createFactory() { 32 return (cls, charset) -> { 33 ObjectMapper mapper = new ObjectMapper(); 34 mapper = new ObjectMapper(); 35 mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); 36 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 37 mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); 38 mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); 39 mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); 40 mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); 41 mapper.setDateFormat(new RFC3339DateFormat()); 42 {{#java8}} 43 mapper.registerModule(new JavaTimeModule()); 44 {{/java8}} 45 {{#joda}} 46 mapper.registerModule(new JodaModule()); 47 {{/joda}} 48 {{#threetenbp}} 49 ThreeTenModule module = new ThreeTenModule(); 50 module.addDeserializer(Instant.class, CustomInstantDeserializer.INSTANT); 51 module.addDeserializer(OffsetDateTime.class, CustomInstantDeserializer.OFFSET_DATE_TIME); 52 module.addDeserializer(ZonedDateTime.class, CustomInstantDeserializer.ZONED_DATE_TIME); 53 mapper.registerModule(module); 54 {{/threetenbp}} 55 JsonNullableModule jnm = new JsonNullableModule(); 56 mapper.registerModule(jnm); 57 return mapper; 58 }; 59 } 60 61 public static JacksonObjectMapper jackson() { 62 return new JacksonObjectMapper(); 63 } 64 }