From 2a323f2256d3f1d8dbd7fafeb60cfa2526b1bd21 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Tue, 10 May 2016 13:00:04 +1200 Subject: [PATCH] #697 - Refactor - tidy objectMapper detection in DefaultTypeManager --- .../server/type/DefaultTypeManager.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/DefaultTypeManager.java b/src/main/java/com/avaje/ebeaninternal/server/type/DefaultTypeManager.java index 2476370dc..4b07685dd 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/DefaultTypeManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/DefaultTypeManager.java @@ -840,25 +840,20 @@ public final class DefaultTypeManager implements TypeManager, KnownImmutable { */ protected void initialiseJacksonTypes(ServerConfig config) { - if (config.getClassLoadConfig().isJacksonObjectMapperPresent()) { + if (objectMapper != null) { logger.trace("Registering JsonNode type support"); - ObjectMapper objectMapper = (ObjectMapper)config.getObjectMapper(); - if (objectMapper == null) { - objectMapper = new ObjectMapper(); - config.setObjectMapper(objectMapper); - } - - jsonNodeClob = new ScalarTypeJsonNode.Clob(objectMapper); - jsonNodeBlob = new ScalarTypeJsonNode.Blob(objectMapper); - jsonNodeVarchar = new ScalarTypeJsonNode.Varchar(objectMapper); + ObjectMapper mapper = (ObjectMapper)objectMapper; + jsonNodeClob = new ScalarTypeJsonNode.Clob(mapper); + jsonNodeBlob = new ScalarTypeJsonNode.Blob(mapper); + jsonNodeVarchar = new ScalarTypeJsonNode.Varchar(mapper); jsonNodeJson = jsonNodeClob; // Default for non-Postgres databases jsonNodeJsonb = jsonNodeClob; // Default for non-Postgres databases if (isPostgres(config.getDatabasePlatform())) { - jsonNodeJson = new ScalarTypeJsonNodePostgres.JSON(objectMapper); - jsonNodeJsonb = new ScalarTypeJsonNodePostgres.JSONB(objectMapper); + jsonNodeJson = new ScalarTypeJsonNodePostgres.JSON(mapper); + jsonNodeJsonb = new ScalarTypeJsonNodePostgres.JSONB(mapper); } // add as default mapping for JsonNode (when not annotated with @DbJson etc)