This is an automated email from the ASF dual-hosted git repository. sunchao pushed a commit to branch branch-2.3 in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/branch-2.3 by this push: new d9e96c96a09 HIVE-27580: Backport HIVE-20071: Migrate to jackson 2.x and prevent usage (#4564) d9e96c96a09 is described below commit d9e96c96a09398d79d9f866b914d994403f4928a Author: Yuming Wang <yumw...@ebay.com> AuthorDate: Wed Aug 30 23:38:28 2023 +0800 HIVE-27580: Backport HIVE-20071: Migrate to jackson 2.x and prevent usage (#4564) * HIVE-20071: Migrate to jackson 2.x and prevent usage (#2464) (Zoltan Haindrich reviewed by Krisztian Kasa) * HIVE-22059: hive-exec jar doesn't contain (fasterxml) jackson library --------- Co-authored-by: Zoltan Haindrich <k...@rxd.hu> --- .../hadoop/hive/common/jsonexplain/tez/Vertex.java | 23 +++-------------- .../java/org/apache/hive/http/JMXJsonServlet.java | 29 +++++++++++----------- .../org/apache/hive/hcatalog/data/JsonSerDe.java | 10 +++++--- .../messaging/json/JSONAddPartitionMessage.java | 2 +- .../messaging/json/JSONAlterIndexMessage.java | 2 +- .../messaging/json/JSONAlterPartitionMessage.java | 2 +- .../messaging/json/JSONAlterTableMessage.java | 2 +- .../messaging/json/JSONCreateDatabaseMessage.java | 2 +- .../messaging/json/JSONCreateFunctionMessage.java | 2 +- .../messaging/json/JSONCreateIndexMessage.java | 2 +- .../messaging/json/JSONCreateTableMessage.java | 2 +- .../messaging/json/JSONDropDatabaseMessage.java | 2 +- .../messaging/json/JSONDropFunctionMessage.java | 2 +- .../messaging/json/JSONDropIndexMessage.java | 2 +- .../messaging/json/JSONDropPartitionMessage.java | 2 +- .../messaging/json/JSONDropTableMessage.java | 2 +- .../hcatalog/messaging/json/JSONInsertMessage.java | 2 +- .../messaging/json/JSONMessageDeserializer.java | 7 +++--- .../hive/hcatalog/templeton/JsonBuilder.java | 12 ++++++--- .../hcatalog/templeton/SimpleWebException.java | 5 ++-- .../apache/hive/hcatalog/templeton/TestDesc.java | 2 +- .../hive/hcatalog/templeton/TestWebHCatE2e.java | 7 +++--- .../hive/llap/cli/LlapStatusServiceDriver.java | 14 +++++------ .../llap/daemon/services/impl/LlapWebServices.java | 7 +++--- .../hive/metastore/messaging/PartitionFiles.java | 2 +- .../messaging/json/JSONAddPartitionMessage.java | 2 +- .../messaging/json/JSONAlterIndexMessage.java | 2 +- .../messaging/json/JSONAlterPartitionMessage.java | 2 +- .../messaging/json/JSONAlterTableMessage.java | 2 +- .../messaging/json/JSONCreateDatabaseMessage.java | 2 +- .../messaging/json/JSONCreateFunctionMessage.java | 2 +- .../messaging/json/JSONCreateIndexMessage.java | 2 +- .../messaging/json/JSONCreateTableMessage.java | 2 +- .../messaging/json/JSONDropDatabaseMessage.java | 2 +- .../messaging/json/JSONDropFunctionMessage.java | 2 +- .../messaging/json/JSONDropIndexMessage.java | 2 +- .../messaging/json/JSONDropPartitionMessage.java | 2 +- .../messaging/json/JSONDropTableMessage.java | 2 +- .../messaging/json/JSONInsertMessage.java | 2 +- .../messaging/json/JSONMessageDeserializer.java | 15 +++++------ .../messaging/json/JSONMessageFactory.java | 10 ++++---- .../json/JSONMessageDeserializerTest.java | 2 +- ql/pom.xml | 19 ++++++++++++++ .../org/apache/hadoop/hive/ql/QueryDisplay.java | 11 +++++--- .../metadata/formatting/JsonMetaDataFormatter.java | 2 +- .../org/apache/hadoop/hive/ql/parse/EximUtil.java | 4 +-- .../org/apache/hadoop/hive/ql/udf/UDFJson.java | 26 +++++++++---------- .../hive/ql/udf/generic/GenericUDTFJSONTuple.java | 20 +++++++-------- .../hadoop/hive/serde2/avro/TypeInfoToSchema.java | 2 -- .../hive/service/cli/operation/SQLOperation.java | 6 ++--- .../apache/hive/service/cli/CLIServiceTest.java | 4 +-- 51 files changed, 155 insertions(+), 140 deletions(-) diff --git a/common/src/java/org/apache/hadoop/hive/common/jsonexplain/tez/Vertex.java b/common/src/java/org/apache/hadoop/hive/common/jsonexplain/tez/Vertex.java index 3d559bdcf0e..bd9b18a66e7 100644 --- a/common/src/java/org/apache/hadoop/hive/common/jsonexplain/tez/Vertex.java +++ b/common/src/java/org/apache/hadoop/hive/common/jsonexplain/tez/Vertex.java @@ -18,19 +18,13 @@ package org.apache.hadoop.hive.common.jsonexplain.tez; -import java.io.IOException; import java.util.ArrayList; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.TreeMap; import org.apache.hadoop.hive.common.jsonexplain.tez.Op.OpType; -import org.apache.hadoop.util.hash.Hash; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -98,16 +92,11 @@ public final class Vertex implements Comparable<Vertex>{ } /** - * @throws JSONException - * @throws JsonParseException - * @throws JsonMappingException - * @throws IOException * @throws Exception * We assume that there is a single top-level Map Operator Tree or a * Reduce Operator Tree in a vertex */ - public void extractOpTree() throws JSONException, JsonParseException, JsonMappingException, - IOException, Exception { + public void extractOpTree() throws Exception { if (vertexObject.length() != 0) { for (String key : JSONObject.getNames(vertexObject)) { if (key.equals("Map Operator Tree:")) { @@ -152,16 +141,11 @@ public final class Vertex implements Comparable<Vertex>{ * @param operator * @param parent * @return - * @throws JSONException - * @throws JsonParseException - * @throws JsonMappingException - * @throws IOException * @throws Exception * assumption: each operator only has one parent but may have many * children */ - Op extractOp(JSONObject operator) throws JSONException, JsonParseException, JsonMappingException, - IOException, Exception { + Op extractOp(JSONObject operator) throws Exception { String[] names = JSONObject.getNames(operator); if (names.length != 1) { throw new Exception("Expect only one operator in " + operator.toString()); @@ -214,8 +198,7 @@ public final class Vertex implements Comparable<Vertex>{ } } - public void print(Printer printer, int indentFlag, String type, Vertex callingVertex) - throws JSONException, Exception { + public void print(Printer printer, int indentFlag, String type, Vertex callingVertex) throws Exception { // print vertexname if (parser.printSet.contains(this) && !hasMultiReduceOp) { if (type != null) { diff --git a/common/src/java/org/apache/hive/http/JMXJsonServlet.java b/common/src/java/org/apache/hive/http/JMXJsonServlet.java index 7535b269290..6cf08566f27 100644 --- a/common/src/java/org/apache/hive/http/JMXJsonServlet.java +++ b/common/src/java/org/apache/hive/http/JMXJsonServlet.java @@ -46,8 +46,9 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonGenerator; + +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; /* * This servlet is based off of the JMXProxyServlet from Tomcat 7.0.14. It has @@ -72,7 +73,7 @@ import org.codehaus.jackson.JsonGenerator; * attribute of a JMX bean. The format of the URL is * <code>http://.../jmx?get=MXBeanName::AttributeName<code> * <p> - * For example + * For example * <code> * http://../jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId * </code> will return the cluster id of the namenode mxbean. @@ -98,23 +99,23 @@ import org.codehaus.jackson.JsonGenerator; * <p> * The servlet attempts to convert the JMXBeans into JSON. Each * bean's attributes will be converted to a JSON object member. - * + * * If the attribute is a boolean, a number, a string, or an array - * it will be converted to the JSON equivalent. - * + * it will be converted to the JSON equivalent. + * * If the value is a {@link CompositeData} then it will be converted * to a JSON object with the keys as the name of the JSON member and * the value is converted following these same rules. - * + * * If the value is a {@link TabularData} then it will be converted * to an array of the {@link CompositeData} elements that it contains. - * + * * All other objects will be converted to a string and output as such. - * + * * The bean's name and modelerType will be returned for all beans. * * Optional paramater "callback" should be used to deliver JSONP response. - * + * */ public class JMXJsonServlet extends HttpServlet { private static final Log LOG = LogFactory.getLog(JMXJsonServlet.class); @@ -144,7 +145,7 @@ public class JMXJsonServlet extends HttpServlet { /** * Process a GET request for the specified resource. - * + * * @param request * The servlet request we are processing * @param response @@ -210,8 +211,8 @@ public class JMXJsonServlet extends HttpServlet { } // --------------------------------------------------------- Private Methods - private void listBeans(JsonGenerator jg, ObjectName qry, String attribute, - HttpServletResponse response) + private void listBeans(JsonGenerator jg, ObjectName qry, String attribute, + HttpServletResponse response) throws IOException { LOG.debug("Listing beans for "+qry); Set<ObjectName> names = null; @@ -255,7 +256,7 @@ public class JMXJsonServlet extends HttpServlet { + " threw an exception", e); } catch ( ReflectionException e ) { // This happens when the code inside the JMX bean (setter?? from the - // java docs) threw an exception, so log it and fall back on the + // java docs) threw an exception, so log it and fall back on the // class name LOG.error("getting attribute " + prs + " of " + oname + " threw an exception", e); diff --git a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java index 831e857b0de..4feb23b2a4b 100644 --- a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java +++ b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java @@ -78,13 +78,15 @@ import org.apache.hive.hcatalog.data.schema.HCatFieldSchema; import org.apache.hive.hcatalog.data.schema.HCatFieldSchema.Type; import org.apache.hive.hcatalog.data.schema.HCatSchema; import org.apache.hive.hcatalog.data.schema.HCatSchemaUtils; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.JsonToken; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; + @SerDeSpec(schemaProps = {serdeConstants.LIST_COLUMNS, serdeConstants.LIST_COLUMN_TYPES, serdeConstants.TIMESTAMP_FORMATS}) diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAddPartitionMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAddPartitionMessage.java index ac7dcd91949..7fe1063f40f 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAddPartitionMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAddPartitionMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.AddPartitionMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; import java.util.Map; diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterIndexMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterIndexMessage.java index 25b0987dc4c..55ab3cbfe06 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterIndexMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterIndexMessage.java @@ -23,7 +23,7 @@ import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hive.hcatalog.messaging.AlterIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of AlterIndexMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterPartitionMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterPartitionMessage.java index 4f1d1045263..ce4179f2c6d 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterPartitionMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterPartitionMessage.java @@ -22,7 +22,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hive.hcatalog.common.HCatConstants; import org.apache.hive.hcatalog.messaging.AlterPartitionMessage; import org.apache.hive.hcatalog.messaging.AlterTableMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.ArrayList; import java.util.List; diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterTableMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterTableMessage.java index b057d4aa72d..edcf96b24b6 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterTableMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONAlterTableMessage.java @@ -21,7 +21,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hive.hcatalog.common.HCatConstants; import org.apache.hive.hcatalog.messaging.AlterTableMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.ArrayList; import java.util.List; diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateDatabaseMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateDatabaseMessage.java index 6db46cf773a..e4edae37a93 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateDatabaseMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateDatabaseMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.CreateDatabaseMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateDatabaseMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateFunctionMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateFunctionMessage.java index fb883fc8986..8836a9b42fe 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateFunctionMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateFunctionMessage.java @@ -22,7 +22,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hive.hcatalog.messaging.CreateFunctionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateFunctionMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateIndexMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateIndexMessage.java index 8d83149c48b..8d3ed43f6a2 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateIndexMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateIndexMessage.java @@ -22,7 +22,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hive.hcatalog.messaging.CreateIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateIndexMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateTableMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateTableMessage.java index 9c667300e00..bd3d7b5e61a 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateTableMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONCreateTableMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.CreateTableMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON implementation of CreateTableMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropDatabaseMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropDatabaseMessage.java index bfe3f631eab..33e4a7cee0b 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropDatabaseMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropDatabaseMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.DropDatabaseMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON implementation of DropDatabaseMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropFunctionMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropFunctionMessage.java index 334e36f7c4d..b6ca5a26ecc 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropFunctionMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropFunctionMessage.java @@ -22,7 +22,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hive.hcatalog.messaging.DropFunctionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateDatabaseMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropIndexMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropIndexMessage.java index bacaa1dde54..c8d750373b8 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropIndexMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropIndexMessage.java @@ -22,7 +22,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hive.hcatalog.messaging.DropIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of DropIndexMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropPartitionMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropPartitionMessage.java index a4d64009248..56ddb6a9671 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropPartitionMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropPartitionMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.DropPartitionMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; import java.util.Map; diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropTableMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropTableMessage.java index 3b6202385e0..718a3c930f9 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropTableMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONDropTableMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.DropTableMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON implementation of DropTableMessage. diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONInsertMessage.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONInsertMessage.java index 8a4db151491..b953e1f1476 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONInsertMessage.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONInsertMessage.java @@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.messaging.json; import org.apache.hive.hcatalog.messaging.InsertMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; import java.util.Map; diff --git a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageDeserializer.java b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageDeserializer.java index bd45d09eb0e..a5ecaa0d35b 100644 --- a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageDeserializer.java +++ b/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageDeserializer.java @@ -34,8 +34,9 @@ import org.apache.hive.hcatalog.messaging.DropPartitionMessage; import org.apache.hive.hcatalog.messaging.DropTableMessage; import org.apache.hive.hcatalog.messaging.InsertMessage; import org.apache.hive.hcatalog.messaging.MessageDeserializer; -import org.codehaus.jackson.map.DeserializationConfig; -import org.codehaus.jackson.map.ObjectMapper; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; /** * MessageDeserializer implementation, for deserializing from JSON strings. @@ -45,7 +46,7 @@ public class JSONMessageDeserializer extends MessageDeserializer { static ObjectMapper mapper = new ObjectMapper(); // Thread-safe. static { - mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } @Override diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/JsonBuilder.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/JsonBuilder.java index cb425b777f1..67904358b3b 100644 --- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/JsonBuilder.java +++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/JsonBuilder.java @@ -27,9 +27,10 @@ import javax.ws.rs.core.Response; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hive.hcatalog.templeton.tool.TempletonUtils; -import org.codehaus.jackson.map.ObjectMapper; import org.eclipse.jetty.http.HttpStatus; +import com.fasterxml.jackson.databind.ObjectMapper; + /** * Helper class to build new json objects with new top level * properties. Only add non-null entries. @@ -93,8 +94,9 @@ public class JsonBuilder { * Add a non-null value to the map. */ public JsonBuilder put(String name, Object val) { - if (val != null) + if (val != null) { map.put(name, val); + } return this; } @@ -134,7 +136,9 @@ public class JsonBuilder { public Response buildResponse() { int status = HttpStatus.OK_200; // Server ok. if (map.containsKey("error")) + { status = HttpStatus.INTERNAL_SERVER_ERROR_500; // Generic http server error. + } Object o = map.get("errorCode"); if (o != null) { if(hiveError2HttpStatusCode.containsKey(o)) { @@ -173,9 +177,9 @@ public class JsonBuilder { */ public static Map jsonToMap(String json) throws IOException { - if (!TempletonUtils.isset(json)) + if (!TempletonUtils.isset(json)) { return new HashMap<String, Object>(); - else { + } else { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, Map.class); } diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SimpleWebException.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SimpleWebException.java index 9638e11bf8c..4ef3a2cb913 100644 --- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SimpleWebException.java +++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SimpleWebException.java @@ -24,7 +24,7 @@ import java.util.HashMap; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectMapper; /** * Simple exception that will return a json error payload if thrown @@ -55,8 +55,9 @@ public class SimpleWebException extends Exception { String msg) { HashMap<String, Object> err = new HashMap<String, Object>(); err.put("error", msg); - if (params != null) + if (params != null) { err.putAll(params); + } String json = "\"error\""; try { diff --git a/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestDesc.java b/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestDesc.java index 653cd04f9b6..f2faf76101e 100644 --- a/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestDesc.java +++ b/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestDesc.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.TestCase; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectMapper; /** * TestDesc - Test the desc objects that are correctly converted to diff --git a/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestWebHCatE2e.java b/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestWebHCatE2e.java index 841e2ffa0ed..4ae5a0faee7 100644 --- a/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestWebHCatE2e.java +++ b/hcatalog/webhcat/svr/src/test/java/org/apache/hive/hcatalog/templeton/TestWebHCatE2e.java @@ -27,8 +27,6 @@ import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.hadoop.hive.metastore.MetaStoreUtils; import org.apache.hadoop.hive.ql.ErrorMsg; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.type.TypeReference; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Ignore; @@ -37,6 +35,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.eclipse.jetty.http.HttpStatus; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -274,7 +275,7 @@ public class TestWebHCatE2e { Assert.assertEquals(HttpStatus.NOT_IMPLEMENTED_501, p.httpStatusCode); Map<String, Object> props = JsonBuilder.jsonToMap(p.responseBody); Assert.assertEquals(p.getAssertMsg(), "Pig version request not yet " + - "implemented", (String)props.get("error")); + "implemented", props.get("error")); } /** diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java index b36d4ff7663..dee90ae7001 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java @@ -34,6 +34,10 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.google.common.annotations.VisibleForTesting; import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; @@ -54,10 +58,6 @@ import org.apache.slider.api.ClusterDescriptionKeys; import org.apache.slider.api.StatusKeys; import org.apache.slider.client.SliderClient; import org.apache.slider.core.exceptions.SliderException; -import org.codehaus.jackson.annotate.JsonIgnore; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.SerializationConfig; -import org.codehaus.jackson.map.annotate.JsonSerialize; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -270,9 +270,9 @@ public class LlapStatusServiceDriver { public void outputJson(PrintWriter writer) throws LlapStatusCliException { ObjectMapper mapper = new ObjectMapper(); - mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); - mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); - mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.setSerializationInclusion(Include.NON_NULL); + mapper.setSerializationInclusion(Include.NON_EMPTY); try { writer.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(appStatusBuilder)); } catch (IOException e) { diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/services/impl/LlapWebServices.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/services/impl/LlapWebServices.java index 028daa129aa..5fc7e8945c7 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/services/impl/LlapWebServices.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/services/impl/LlapWebServices.java @@ -42,11 +42,12 @@ import org.apache.hadoop.service.CompositeService; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hive.common.util.HiveVersionInfo; import org.apache.hive.http.HttpServer; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonGenerator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; + public class LlapWebServices extends AbstractService { private static final Logger LOG = LoggerFactory.getLogger(LlapWebServices.class); @@ -200,7 +201,7 @@ public class LlapWebServices extends AbstractService { public void init() throws ServletException { jsonFactory = new JsonFactory(); } - + @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { JsonGenerator jg = null; diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/PartitionFiles.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/PartitionFiles.java index 4fd7f8c57b9..071c8dcdd64 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/PartitionFiles.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/PartitionFiles.java @@ -22,7 +22,7 @@ import java.util.Iterator; import java.util.List; import com.google.common.collect.Lists; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; public class PartitionFiles { diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAddPartitionMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAddPartitionMessage.java index a48820569cf..c92dd2ef874 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAddPartitionMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAddPartitionMessage.java @@ -28,7 +28,7 @@ import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.AddPartitionMessage; import org.apache.hadoop.hive.metastore.messaging.PartitionFiles; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import javax.annotation.Nullable; diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterIndexMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterIndexMessage.java index 5dffdd10432..30fd6830f4f 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterIndexMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterIndexMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hadoop.hive.metastore.messaging.AlterIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of AlterIndexMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java index dd1bf3c5c31..648988891ba 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java @@ -22,7 +22,7 @@ import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.AlterPartitionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.ArrayList; import java.util.List; diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java index 792015ef68f..3c98336aeac 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java @@ -21,7 +21,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.AlterTableMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON alter table message diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java index f8717b24c1b..ea9ef632ace 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java @@ -20,7 +20,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.messaging.CreateDatabaseMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateDatabaseMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateFunctionMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateFunctionMessage.java index 3646d85e837..1b1472c95b8 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateFunctionMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateFunctionMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.messaging.CreateFunctionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateFunctionMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateIndexMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateIndexMessage.java index a2e2fc02e3b..e52a5487e22 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateIndexMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateIndexMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hadoop.hive.metastore.messaging.CreateIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateIndexMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateTableMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateTableMessage.java index dbc3dd4b49e..3234bb9ddf7 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateTableMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateTableMessage.java @@ -25,8 +25,8 @@ import java.util.List; import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.CreateTableMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; /** diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropDatabaseMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropDatabaseMessage.java index be17e6d5ac1..eeef80ad884 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropDatabaseMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropDatabaseMessage.java @@ -20,7 +20,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.messaging.DropDatabaseMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON implementation of DropDatabaseMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropFunctionMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropFunctionMessage.java index b9ee4c4dfde..50db57e0b32 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropFunctionMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropFunctionMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.messaging.DropFunctionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of CreateDatabaseMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropIndexMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropIndexMessage.java index e99a31f68b8..245641ff0aa 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropIndexMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropIndexMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Index; import org.apache.hadoop.hive.metastore.messaging.DropIndexMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Implementation of DropIndexMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropPartitionMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropPartitionMessage.java index f1860af191c..b5b2b2dafb1 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropPartitionMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropPartitionMessage.java @@ -22,7 +22,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.DropPartitionMessage; import org.apache.thrift.TException; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; import java.util.Map; diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java index 635ab6133b8..c21f48d3f59 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java @@ -20,7 +20,7 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.messaging.DropTableMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON implementation of DropTableMessage. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONInsertMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONInsertMessage.java index e1316a47745..a98735564ba 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONInsertMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONInsertMessage.java @@ -20,8 +20,8 @@ package org.apache.hadoop.hive.metastore.messaging.json; import org.apache.hadoop.hive.metastore.messaging.InsertMessage; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; import java.util.Iterator; diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializer.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializer.java index 40ef5fb6fb8..f2645b2e989 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializer.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializer.java @@ -34,9 +34,10 @@ import org.apache.hadoop.hive.metastore.messaging.DropPartitionMessage; import org.apache.hadoop.hive.metastore.messaging.DropTableMessage; import org.apache.hadoop.hive.metastore.messaging.InsertMessage; import org.apache.hadoop.hive.metastore.messaging.MessageDeserializer; -import org.codehaus.jackson.map.DeserializationConfig; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.SerializationConfig; + +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; /** * MessageDeserializer implementation, for deserializing from JSON strings. @@ -46,10 +47,10 @@ public class JSONMessageDeserializer extends MessageDeserializer { static ObjectMapper mapper = new ObjectMapper(); // Thread-safe. static { - mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(SerializationConfig.Feature.AUTO_DETECT_GETTERS, false); - mapper.configure(SerializationConfig.Feature.AUTO_DETECT_IS_GETTERS, false); - mapper.configure(SerializationConfig.Feature.AUTO_DETECT_FIELDS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(MapperFeature.AUTO_DETECT_GETTERS, false); + mapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, false); + mapper.configure(MapperFeature.AUTO_DETECT_FIELDS, false); } @Override diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java index d93a0d30735..34c6c3db170 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java @@ -26,6 +26,11 @@ import java.util.Map; import javax.annotation.Nullable; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.Iterables; import org.apache.hadoop.hive.metastore.api.Database; @@ -57,11 +62,6 @@ import org.apache.thrift.TException; import org.apache.thrift.TSerializer; import org.apache.thrift.protocol.TJSONProtocol; import org.apache.thrift.transport.TTransportException; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ObjectNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializerTest.java b/metastore/src/test/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializerTest.java index c278338c195..565be722bab 100644 --- a/metastore/src/test/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializerTest.java +++ b/metastore/src/test/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageDeserializerTest.java @@ -17,7 +17,7 @@ */ package org.apache.hadoop.hive.metastore.messaging.json; -import org.codehaus.jackson.annotate.JsonProperty; +import com.fasterxml.jackson.annotation.JsonProperty; import org.json.JSONException; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; diff --git a/ql/pom.xml b/ql/pom.xml index 421124c6a7b..36574a4bc16 100644 --- a/ql/pom.xml +++ b/ql/pom.xml @@ -892,6 +892,9 @@ <include>io.airlift:aircompressor</include> <include>org.codehaus.jackson:jackson-core-asl</include> <include>org.codehaus.jackson:jackson-mapper-asl</include> + <include>com.fasterxml.jackson.core:jackson-core</include> + <include>com.fasterxml.jackson.core:jackson-annotations</include> + <include>com.fasterxml.jackson.core:jackson-databind</include> <include>com.google.guava:guava</include> <include>net.sf.opencsv:opencsv</include> <include>org.apache.hive:spark-client</include> @@ -901,6 +904,10 @@ <include>joda-time:joda-time</include> <include>org.apache.calcite:*</include> <include>org.apache.calcite.avatica:avatica</include> + <include>io.dropwizard.metrics:metrics-core</include> + <include>io.dropwizard.metrics:metrics-jvm</include> + <include>io.dropwizard.metrics:metrics-json</include> + <include>com.zaxxer:HikariCP</include> </includes> </artifactSet> <relocations> @@ -912,6 +919,18 @@ <pattern>org.objenesis</pattern> <shadedPattern>org.apache.hive.org.objenesis</shadedPattern> </relocation> + <relocation> + <pattern>com.fasterxml.jackson</pattern> + <shadedPattern>org.apache.hive.com.fasterxml.jackson</shadedPattern> + </relocation> + <relocation> + <pattern>com.codahale.metrics</pattern> + <shadedPattern>org.apache.hive.com.codahale.metrics</shadedPattern> + </relocation> + <relocation> + <pattern>com.zaxxer.hikari</pattern> + <shadedPattern>org.apache.hive.com.zaxxer.hikari</shadedPattern> + </relocation> </relocations> </configuration> </execution> diff --git a/ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java b/ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java index 1f2e4c91dd8..8205fbbc853 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java @@ -24,9 +24,11 @@ import org.apache.hadoop.hive.ql.plan.api.StageType; import java.io.Serializable; import java.util.*; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonWriteNullProperties; -import org.codehaus.jackson.annotate.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonIgnore; /** * Some limited query information to save for WebUI. @@ -60,8 +62,9 @@ public class QueryDisplay { EXECUTION, } - @JsonWriteNullProperties(false) + @JsonInclude(Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) + @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE) public static class TaskDisplay { private Integer returnValue; //if set, determines that task is complete. diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java index 33158063d9e..c3523f41138 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java @@ -44,7 +44,7 @@ import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.metadata.Partition; import org.apache.hadoop.hive.ql.metadata.PrimaryKeyInfo; import org.apache.hadoop.hive.ql.metadata.Table; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectMapper; /** * Format table and index information for machine readability using diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java index 21a554593c5..b406538b984 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hive.ql.parse; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; import com.google.common.base.Function; import org.apache.commons.lang.StringUtils; @@ -43,8 +45,6 @@ import org.apache.thrift.TDeserializer; import org.apache.thrift.TException; import org.apache.thrift.TSerializer; import org.apache.thrift.protocol.TJSONProtocol; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonGenerator; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java index 0c54754d677..d42f25a2576 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java @@ -26,15 +26,13 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.fasterxml.jackson.core.json.JsonReadFeature; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Iterators; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonParser.Feature; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.type.TypeFactory; -import org.codehaus.jackson.type.JavaType; /** * UDFJson. @@ -61,11 +59,17 @@ import org.codehaus.jackson.type.JavaType; public class UDFJson extends UDF { private static final Pattern patternKey = Pattern.compile("^([a-zA-Z0-9_\\-\\:\\s]+).*"); private static final Pattern patternIndex = Pattern.compile("\\[([0-9]+|\\*)\\]"); - private static final JavaType MAP_TYPE = TypeFactory.fromClass(Map.class); - private static final JavaType LIST_TYPE = TypeFactory.fromClass(List.class); - private final JsonFactory jsonFactory = new JsonFactory(); - private final ObjectMapper objectMapper = new ObjectMapper(jsonFactory); + private static final ObjectMapper objectMapper = new ObjectMapper(); + private static final JavaType MAP_TYPE = objectMapper.getTypeFactory().constructType(Map.class); + private static final JavaType LIST_TYPE = objectMapper.getTypeFactory().constructType(List.class); + + static { + // Allows for unescaped ASCII control characters in JSON values + objectMapper.enable(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature()); + // Enabled to accept quoting of all character backslash qooting mechanism + objectMapper.enable(JsonReadFeature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER.mappedFeature()); + } // An LRU cache using a linked hash map static class HashCache<K, V> extends LinkedHashMap<K, V> { @@ -95,10 +99,6 @@ public class UDFJson extends UDF { Map<String, Boolean> mKeyMatchesCache = new HashCache<String, Boolean>(); public UDFJson() { - // Allows for unescaped ASCII control characters in JSON values - jsonFactory.enable(Feature.ALLOW_UNQUOTED_CONTROL_CHARS); - // Enabled to accept quoting of all character backslash qooting mechanism - jsonFactory.enable(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); } /** diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFJSONTuple.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFJSONTuple.java index 34911b08c55..60c811f2ae6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFJSONTuple.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFJSONTuple.java @@ -25,6 +25,11 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.json.JsonReadFeature; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; + import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import org.apache.hadoop.hive.ql.metadata.HiveException; @@ -35,11 +40,6 @@ import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector; import org.apache.hadoop.io.Text; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonParser.Feature; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.type.TypeFactory; -import org.codehaus.jackson.type.JavaType; /** * GenericUDTFJSONTuple: this @@ -53,15 +53,15 @@ public class GenericUDTFJSONTuple extends GenericUDTF { private static final Logger LOG = LoggerFactory.getLogger(GenericUDTFJSONTuple.class.getName()); - private static final JsonFactory JSON_FACTORY = new JsonFactory(); + private static final ObjectMapper MAPPER = new ObjectMapper(); + private static final JavaType MAP_TYPE = MAPPER.getTypeFactory().constructType(Map.class); static { // Allows for unescaped ASCII control characters in JSON values - JSON_FACTORY.enable(Feature.ALLOW_UNQUOTED_CONTROL_CHARS); + MAPPER.enable(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature()); // Enabled to accept quoting of all character backslash qooting mechanism - JSON_FACTORY.enable(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); + MAPPER.enable(JsonReadFeature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER.mappedFeature()); + } - private static final ObjectMapper MAPPER = new ObjectMapper(JSON_FACTORY); - private static final JavaType MAP_TYPE = TypeFactory.fromClass(Map.class); int numCols; // number of output columns String[] paths; // array of path expressions, each of which corresponds to a column diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java index b4f219497e5..7b6af3b8930 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java @@ -29,8 +29,6 @@ import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.JsonNodeFactory; import java.util.ArrayList; import java.util.Arrays; diff --git a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java index f41092ed15a..9c18314ba99 100644 --- a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java +++ b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java @@ -79,9 +79,9 @@ import org.apache.hive.service.cli.RowSetFactory; import org.apache.hive.service.cli.TableSchema; import org.apache.hive.service.cli.session.HiveSession; import org.apache.hive.service.server.ThreadWithGarbageCleanup; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.map.JsonMappingException; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; /** * SQLOperation. diff --git a/service/src/test/org/apache/hive/service/cli/CLIServiceTest.java b/service/src/test/org/apache/hive/service/cli/CLIServiceTest.java index bc6648e4088..97a9948d1d6 100644 --- a/service/src/test/org/apache/hive/service/cli/CLIServiceTest.java +++ b/service/src/test/org/apache/hive/service/cli/CLIServiceTest.java @@ -40,8 +40,8 @@ import org.apache.hadoop.hive.ql.parse.ASTNode; import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHook; import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContext; import org.apache.hadoop.hive.ql.parse.SemanticException; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.type.TypeReference; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.hive.conf.HiveConf;