diff --git a/hoodie-common/pom.xml b/hoodie-common/pom.xml
index 91a945203..0d29828ab 100644
--- a/hoodie-common/pom.xml
+++ b/hoodie-common/pom.xml
@@ -89,10 +89,6 @@
com.fasterxml.jackson.core
jackson-annotations
-
- org.codehaus.jackson
- jackson-mapper-asl
-
org.apache.parquet
parquet-avro
@@ -114,11 +110,6 @@
hadoop-common
tests
-
- org.codehaus.jackson
- jackson-core-asl
- 1.9.13
-
org.apache.commons
commons-lang3
diff --git a/hoodie-common/src/main/java/com/uber/hoodie/avro/MercifulJsonConverter.java b/hoodie-common/src/main/java/com/uber/hoodie/avro/MercifulJsonConverter.java
index b39d64174..827da3093 100644
--- a/hoodie-common/src/main/java/com/uber/hoodie/avro/MercifulJsonConverter.java
+++ b/hoodie-common/src/main/java/com/uber/hoodie/avro/MercifulJsonConverter.java
@@ -24,7 +24,7 @@ import java.util.Map;
import org.apache.avro.Schema;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;
-import org.codehaus.jackson.map.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
/**
* Marjority of this is copied from https://github.com/jwills/avro-json/blob/master/src/main/java/com/cloudera/science/avro/common/JsonConverter.java
diff --git a/hoodie-common/src/main/java/com/uber/hoodie/common/HoodieJsonPayload.java b/hoodie-common/src/main/java/com/uber/hoodie/common/HoodieJsonPayload.java
index c8d89d96b..95b2b3992 100644
--- a/hoodie-common/src/main/java/com/uber/hoodie/common/HoodieJsonPayload.java
+++ b/hoodie-common/src/main/java/com/uber/hoodie/common/HoodieJsonPayload.java
@@ -16,6 +16,8 @@
package com.uber.hoodie.common;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.uber.hoodie.avro.MercifulJsonConverter;
import com.uber.hoodie.common.model.HoodieRecordPayload;
import com.uber.hoodie.exception.HoodieException;
@@ -30,8 +32,6 @@ import java.util.zip.InflaterInputStream;
import org.apache.avro.Schema;
import org.apache.avro.generic.IndexedRecord;
import org.apache.commons.io.IOUtils;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.map.ObjectMapper;
public class HoodieJsonPayload implements HoodieRecordPayload {
@@ -98,7 +98,7 @@ public class HoodieJsonPayload implements HoodieRecordPayload
if (!node.has(field)) {
throw new HoodieException("Field :" + field + " not found in payload => " + node.toString());
}
- return node.get(field).getTextValue();
+ return node.get(field).textValue();
}
public String getRowKey(String keyColumnField) throws IOException {
diff --git a/hoodie-common/src/main/java/com/uber/hoodie/common/model/HoodieCommitMetadata.java b/hoodie-common/src/main/java/com/uber/hoodie/common/model/HoodieCommitMetadata.java
index 8a49c5c39..21c1816f5 100644
--- a/hoodie-common/src/main/java/com/uber/hoodie/common/model/HoodieCommitMetadata.java
+++ b/hoodie-common/src/main/java/com/uber/hoodie/common/model/HoodieCommitMetadata.java
@@ -16,7 +16,11 @@
package com.uber.hoodie.common.model;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.Serializable;
import java.nio.charset.Charset;
@@ -27,10 +31,6 @@ import java.util.Map;
import org.apache.hadoop.fs.Path;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonMethod;
-import org.codehaus.jackson.map.DeserializationConfig.Feature;
-import org.codehaus.jackson.map.ObjectMapper;
/**
* All the metadata that gets stored along with a commit.
@@ -116,9 +116,7 @@ public class HoodieCommitMetadata implements Serializable {
log.info("partition path is null for " + partitionToWriteStats.get(null));
partitionToWriteStats.remove(null);
}
- ObjectMapper mapper = new ObjectMapper();
- mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);
- return mapper.defaultPrettyPrintingWriter().writeValueAsString(this);
+ return getObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(this);
}
public static HoodieCommitMetadata fromJsonString(String jsonStr) throws IOException {
@@ -126,10 +124,7 @@ public class HoodieCommitMetadata implements Serializable {
// For empty commit file (no data or somethings bad happen).
return new HoodieCommitMetadata();
}
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);
- return mapper.readValue(jsonStr, HoodieCommitMetadata.class);
+ return getObjectMapper().readValue(jsonStr, HoodieCommitMetadata.class);
}
// Here the functions are named "fetch" instead of "get", to get avoid of the json conversion.
@@ -235,4 +230,11 @@ public class HoodieCommitMetadata implements Serializable {
public static HoodieCommitMetadata fromBytes(byte[] bytes) throws IOException {
return fromJsonString(new String(bytes, Charset.forName("utf-8")));
}
+
+ private static ObjectMapper getObjectMapper() {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+ mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
+ return mapper;
+ }
}
diff --git a/hoodie-common/src/test/java/com/uber/hoodie/common/util/TestRecord.java b/hoodie-common/src/test/java/com/uber/hoodie/common/util/TestRecord.java
index 5df7f3252..ecbc94c85 100644
--- a/hoodie-common/src/test/java/com/uber/hoodie/common/util/TestRecord.java
+++ b/hoodie-common/src/test/java/com/uber/hoodie/common/util/TestRecord.java
@@ -16,14 +16,14 @@
package com.uber.hoodie.common.util;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonMethod;
-import org.codehaus.jackson.map.ObjectMapper;
@JsonIgnoreProperties(ignoreUnknown = true)
@SuppressWarnings({"unused", "FieldCanBeLocal", "MismatchedQueryAndUpdateOfCollection"})
@@ -97,7 +97,7 @@ public class TestRecord implements Serializable {
public String toJsonString() throws IOException {
ObjectMapper mapper = new ObjectMapper();
- mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);
+ mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(this);
}
}
diff --git a/hoodie-spark/pom.xml b/hoodie-spark/pom.xml
index 545ff9a59..3e8878ea9 100644
--- a/hoodie-spark/pom.xml
+++ b/hoodie-spark/pom.xml
@@ -148,10 +148,6 @@
com.fasterxml.jackson.core
jackson-annotations
-
- org.codehaus.jackson
- jackson-mapper-asl
-
org.apache.hadoop