This is an automated email from the ASF dual-hosted git repository.

abhay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d11568  RANGER-2420: Ranger spends 36% of CPU in ObjectMapper
4d11568 is described below

commit 4d1156875244c9bc6f9bd34bfae7d65a1e634552
Author: Abhay Kulkarni <[email protected]>
AuthorDate: Tue May 28 14:55:15 2019 -0700

    RANGER-2420: Ranger spends 36% of CPU in ObjectMapper
---
 .../admin/client/datatype/GrantRevokeData.java     | 27 ++-----
 .../ranger/admin/client/datatype/RESTResponse.java | 22 ++----
 .../plugin/audit/RangerDefaultAuditHandler.java    |  6 +-
 .../org/apache/ranger/plugin/util/JsonUtilsV2.java | 71 ++++++++++++++++++
 .../hadoop/crypto/key/RangerKeyStoreProvider.java  | 12 ++-
 .../crypto/key/kms/server/KMSJSONReader.java       |  5 +-
 .../crypto/key/kms/server/KMSJSONWriter.java       |  5 +-
 .../ranger/services/knox/client/KnoxClient.java    | 12 +--
 .../java/org/apache/ranger/biz/ServiceDBStore.java |  4 +-
 .../java/org/apache/ranger/common/JSONUtil.java    | 85 ++++------------------
 .../java/org/apache/ranger/rest/ServiceREST.java   | 14 ++--
 .../ranger/service/RangerDataHistService.java      | 53 ++------------
 .../apache/ranger/service/RangerPolicyService.java | 11 +--
 .../org/apache/ranger/service/XAssetService.java   |  5 +-
 .../org/apache/ranger/biz/TestServiceDBStore.java  |  4 +
 .../ranger/service/TestRangerDataHistService.java  | 61 ----------------
 16 files changed, 141 insertions(+), 256 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/GrantRevokeData.java
 
b/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/GrantRevokeData.java
index a8d3c6a..d55667c 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/GrantRevokeData.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/GrantRevokeData.java
@@ -20,18 +20,15 @@
  package org.apache.ranger.admin.client.datatype;
 
 
-import java.io.IOException;
 import java.util.List;
 import java.util.ArrayList;
 
 import org.apache.ranger.authorization.utils.StringUtil;
-import org.codehaus.jackson.JsonGenerationException;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.codehaus.jackson.annotate.JsonAutoDetect;
 import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
 
 
 @JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE, fieldVisibility = Visibility.ANY)
@@ -151,14 +148,8 @@ public class GrantRevokeData implements 
java.io.Serializable {
        
        public String toJson() {
                try {
-                       ObjectMapper om = new ObjectMapper();
-
-                       return om.writeValueAsString(this);
-               } catch (JsonGenerationException e) {
-                       e.printStackTrace();
-               } catch (JsonMappingException e) {
-                       e.printStackTrace();
-               } catch (IOException e) {
+                       return JsonUtilsV2.objToJson(this);
+               } catch (Exception e) {
                        e.printStackTrace();
                }
                
@@ -173,7 +164,7 @@ public class GrantRevokeData implements 
java.io.Serializable {
        @JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE, fieldVisibility = Visibility.ANY)
        @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
        @JsonIgnoreProperties(ignoreUnknown = true)
-       public static class PermMap {
+       public static class PermMap implements java.io.Serializable {
                private List<String> userList  = new ArrayList<>();
                private List<String> groupList = new ArrayList<>();
                private List<String> permList  = new ArrayList<>();
@@ -233,14 +224,8 @@ public class GrantRevokeData implements 
java.io.Serializable {
 
                public String toJson() {
                        try {
-                               ObjectMapper om = new ObjectMapper();
-
-                               return om.writeValueAsString(this);
-                       } catch (JsonGenerationException e) {
-                               e.printStackTrace();
-                       } catch (JsonMappingException e) {
-                               e.printStackTrace();
-                       } catch (IOException e) {
+                               return JsonUtilsV2.objToJson(this);
+                       } catch (Exception e) {
                                e.printStackTrace();
                        }
                        
diff --git 
a/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/RESTResponse.java
 
b/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/RESTResponse.java
index 333f565..75c2c9f 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/RESTResponse.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/admin/client/datatype/RESTResponse.java
@@ -22,10 +22,10 @@ import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.apache.ranger.authorization.utils.StringUtil;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.codehaus.jackson.annotate.JsonAutoDetect;
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
 import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 import com.sun.jersey.api.client.ClientResponse;
@@ -34,7 +34,7 @@ import com.sun.jersey.api.client.ClientResponse;
 @JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE, fieldVisibility = Visibility.ANY)
 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown = true)
-public class RESTResponse {
+public class RESTResponse implements java.io.Serializable {
        private static final Logger LOG = Logger.getLogger(RESTResponse.class);
 
        /**
@@ -111,9 +111,7 @@ public class RESTResponse {
 
        public String toJson() {
                try {
-                       ObjectMapper om = new ObjectMapper();
-
-                       return om.writeValueAsString(this);
+                       return JsonUtilsV2.objToJson(this);
                } catch (Exception e) {
                        if(LOG.isDebugEnabled()) {
                                LOG.debug("toJson() failed", e);
@@ -125,9 +123,7 @@ public class RESTResponse {
 
        public static RESTResponse fromJson(String jsonString) {
                try {
-                       ObjectMapper om = new ObjectMapper();
-
-                       return om.readValue(jsonString, RESTResponse.class);
+                       return JsonUtilsV2.jsonToObj(jsonString, 
RESTResponse.class);
                } catch (Exception e) {
                        if(LOG.isDebugEnabled()) {
                                LOG.debug("fromJson('" + jsonString + "') 
failed", e);
@@ -145,7 +141,7 @@ public class RESTResponse {
        @JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE, fieldVisibility = Visibility.ANY)
        @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
        @JsonIgnoreProperties(ignoreUnknown = true)
-       public static class Message {
+       public static class Message implements java.io.Serializable {
                private String name;
                private String rbKey;
                private String message;
@@ -185,9 +181,7 @@ public class RESTResponse {
 
                public String toJson() {
                        try {
-                               ObjectMapper om = new ObjectMapper();
-
-                               return om.writeValueAsString(this);
+                               return JsonUtilsV2.objToJson(this);
                        } catch (Exception e) {
                                if(LOG.isDebugEnabled()) {
                                        LOG.debug("toJson() failed", e);
@@ -199,9 +193,7 @@ public class RESTResponse {
 
                public static RESTResponse fromJson(String jsonString) {
                        try {
-                               ObjectMapper om = new ObjectMapper();
-
-                               return om.readValue(jsonString, 
RESTResponse.class);
+                               return JsonUtilsV2.jsonToObj(jsonString, 
RESTResponse.class);
                        } catch (Exception e) {
                                if(LOG.isDebugEnabled()) {
                                        LOG.debug("fromJson('" + jsonString + 
"') failed", e);
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
index 5e2c492..6b6e91d 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
@@ -35,9 +35,9 @@ import 
org.apache.ranger.authorization.hadoop.constants.RangerHadoopConstants;
 import org.apache.ranger.plugin.contextenricher.RangerTagForEval;
 import org.apache.ranger.plugin.policyengine.*;
 import org.apache.ranger.plugin.service.RangerBasePlugin;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.ranger.plugin.util.RangerAccessRequestUtil;
 import org.apache.ranger.plugin.util.RangerRESTUtils;
-import org.codehaus.jackson.map.ObjectMapper;
 
 
 public class RangerDefaultAuditHandler implements RangerAccessResultProcessor {
@@ -272,11 +272,9 @@ public class RangerDefaultAuditHandler implements 
RangerAccessResultProcessor {
         }
 
        private String writeObjectAsString(Serializable obj) {
-               ObjectMapper mapper = new ObjectMapper();
-
                String jsonStr = StringUtils.EMPTY;
                try {
-                       jsonStr = mapper.writeValueAsString(obj);
+                       jsonStr = JsonUtilsV2.objToJson(obj);
                } catch (Exception e) {
                        LOG.error("Cannot create JSON string for object:[" + 
obj + "]", e);
                }
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java
new file mode 100644
index 0000000..9a8546b
--- /dev/null
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ranger.plugin.util;
+
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.type.TypeReference;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class JsonUtilsV2 {
+
+    static private final ThreadLocal<ObjectMapper> mapper = new 
ThreadLocal<ObjectMapper>() {
+        @Override
+        protected ObjectMapper initialValue() {
+            return new ObjectMapper();
+        }
+    };
+
+    static public ObjectMapper getMapper() {
+        return mapper.get();
+    }
+
+    static public Map<String, String> jsonToMap(String jsonStr) throws 
Exception {
+        final Map<String, String> ret;
+
+        if (jsonStr == null || jsonStr.isEmpty()) {
+            ret = new HashMap<>();
+        } else {
+            ret = getMapper().readValue(jsonStr, new TypeReference<Map<String, 
String>>() {});
+        }
+
+        return ret;
+    }
+
+    static public String mapToJson(Map<?, ?> map) throws Exception {
+        return getMapper().writeValueAsString(map);
+    }
+
+    static public String listToJson(List<?> list) throws Exception {
+        return getMapper().writeValueAsString(list);
+    }
+
+    static public String objToJson(Serializable obj) throws Exception {
+        return getMapper().writeValueAsString(obj);
+    }
+
+    static public <T> T jsonToObj(String json, Class<T> tClass) throws 
Exception {
+        return getMapper().readValue(json, tClass);
+    }
+
+}
diff --git 
a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java 
b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
index bc69293..b280cbf 100755
--- a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
+++ b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStoreProvider.java
@@ -41,7 +41,7 @@ import javax.crypto.spec.SecretKeySpec;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.conf.Configuration;
-import org.codehaus.jackson.map.ObjectMapper;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.hadoop.fs.Path;
 import org.apache.ranger.credentialapi.CredentialReader;
 import org.apache.ranger.kms.dao.DaoManager;
@@ -217,10 +217,9 @@ public class RangerKeyStoreProvider extends KeyProvider {
             logger.debug("name : " + name + " and versionName : " + 
versionName);
         }
         try {
-            ObjectMapper om = new ObjectMapper();
-            String attribute = om.writeValueAsString(attributes);
+            String attribute = JsonUtilsV2.mapToJson(attributes);
             dbStore.addKeyEntry(versionName, new SecretKeySpec(material, 
cipher), masterKey, cipher, bitLength, description, version, attribute);
-        } catch (KeyStoreException e) {
+        } catch (Exception e) {
             throw new IOException("Can't store key " + versionName, e);
         }
         changed = true;
@@ -271,10 +270,9 @@ public class RangerKeyStoreProvider extends KeyProvider {
             for (Map.Entry<String, Metadata> entry : cache.entrySet()) {
                 try {
                     Metadata metadata = entry.getValue();
-                    ObjectMapper om = new ObjectMapper();
-                    String attributes = 
om.writeValueAsString(metadata.getAttributes());
+                    String attributes = 
JsonUtilsV2.mapToJson(metadata.getAttributes());
                     dbStore.addKeyEntry(entry.getKey(), new 
KeyMetadata(metadata), masterKey, metadata.getAlgorithm(), 
metadata.getBitLength(), metadata.getDescription(), metadata.getVersions(), 
attributes);
-                } catch (KeyStoreException e) {
+                } catch (Exception e) {
                     throw new IOException("Can't set metadata key " + 
entry.getKey(), e);
                 }
             }
diff --git 
a/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONReader.java 
b/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONReader.java
index d3e0064..2b85276 100644
--- 
a/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONReader.java
+++ 
b/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONReader.java
@@ -18,7 +18,7 @@
 package org.apache.hadoop.crypto.key.kms.server;
 
 import org.apache.hadoop.classification.InterfaceAudience;
-import org.codehaus.jackson.map.ObjectMapper;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.WebApplicationException;
@@ -48,7 +48,6 @@ public class KMSJSONReader implements MessageBodyReader<Map> {
       Annotation[] annotations, MediaType mediaType,
       MultivaluedMap<String, String> httpHeaders, InputStream entityStream)
       throws IOException, WebApplicationException {
-    ObjectMapper mapper = new ObjectMapper();
-    return mapper.readValue(entityStream, type);
+    return JsonUtilsV2.getMapper().readValue(entityStream, type);
   }
 }
diff --git 
a/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONWriter.java 
b/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONWriter.java
index 3674e7a..a4e2b30 100644
--- 
a/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONWriter.java
+++ 
b/kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSJSONWriter.java
@@ -18,7 +18,7 @@
 package org.apache.hadoop.crypto.key.kms.server;
 
 import org.apache.hadoop.classification.InterfaceAudience;
-import org.codehaus.jackson.map.ObjectMapper;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 
 import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
@@ -63,8 +63,7 @@ public class KMSJSONWriter implements 
MessageBodyWriter<Object> {
       MultivaluedMap<String, Object> stringObjectMultivaluedMap,
       OutputStream outputStream) throws IOException, WebApplicationException {
     Writer writer = new OutputStreamWriter(outputStream);
-    ObjectMapper jsonMapper = new ObjectMapper();
-    jsonMapper.writerWithDefaultPrettyPrinter().writeValue(writer, obj);
+    
JsonUtilsV2.getMapper().writerWithDefaultPrettyPrinter().writeValue(writer, 
obj);
   }
 
 }
diff --git 
a/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
 
b/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
index 0c83ef9..b3c163d 100644
--- 
a/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
+++ 
b/knox-agent/src/main/java/org/apache/ranger/services/knox/client/KnoxClient.java
@@ -30,9 +30,9 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ranger.plugin.client.BaseClient;
 import org.apache.ranger.plugin.client.HadoopException;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.ranger.plugin.util.PasswordUtils;
 import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.map.ObjectMapper;
 
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
@@ -103,10 +103,8 @@ public class KnoxClient {
                                        if (response.getStatus() == 200) {
                                                String jsonString = 
response.getEntity(String.class);
                                                LOG.debug("Knox topology list 
response JSON string: "+ jsonString);
-                                               
-                                               ObjectMapper objectMapper = new 
ObjectMapper();
-                                               
-                                               JsonNode rootNode = 
objectMapper.readTree(jsonString);
+
+                                               JsonNode rootNode = 
JsonUtilsV2.getMapper().readTree(jsonString);
                                                JsonNode topologyNode = 
rootNode.findValue("topology");
                                                if (topologyNode == null) {
                                                        return topologyList;
@@ -215,9 +213,7 @@ public class KnoxClient {
                                                        String jsonString = 
response.getEntity(String.class);
                                                        LOG.debug("Knox service 
lookup response JSON string: " + jsonString);
 
-                                                       ObjectMapper 
objectMapper = new ObjectMapper();
-
-                                                       JsonNode rootNode = 
objectMapper.readTree(jsonString);
+                                                       JsonNode rootNode = 
JsonUtilsV2.getMapper().readTree(jsonString);
                                                        JsonNode topologyNode = 
rootNode.findValue("topology");
                                                        if (topologyNode != 
null) {
                                                                JsonNode 
servicesNode = topologyNode.get("service");
diff --git 
a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java 
b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index 35dc940..eef29b0 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -3272,7 +3272,7 @@ public class ServiceDBStore extends AbstractServiceStore {
                }
 
                String content = xDataHist.getContent();
-               RangerPolicy policy = (RangerPolicy) 
dataHistService.writeJsonToJavaObject(content, RangerPolicy.class);
+               RangerPolicy policy = (RangerPolicy) 
jsonUtil.writeJsonToJavaObject(content, RangerPolicy.class);
 
                return policy;
        }
@@ -3296,7 +3296,7 @@ public class ServiceDBStore extends AbstractServiceStore {
                }
 
                String content = xDataHist.getContent();
-               RangerPolicy policy = (RangerPolicy) 
dataHistService.writeJsonToJavaObject(content, RangerPolicy.class);
+               RangerPolicy policy = (RangerPolicy) 
jsonUtil.writeJsonToJavaObject(content, RangerPolicy.class);
 
                return policy;
        }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/JSONUtil.java 
b/security-admin/src/main/java/org/apache/ranger/common/JSONUtil.java
index 5bc1baf..014796f 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/JSONUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/JSONUtil.java
@@ -25,16 +25,13 @@ package org.apache.ranger.common;
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.ranger.common.view.ViewBaseBean;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.type.TypeReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -46,39 +43,23 @@ public class JSONUtil {
 
        public File writeJsonToFile(ViewBaseBean viewBean, String fileName)
                        throws JsonGenerationException, JsonMappingException, 
IOException {
-               ObjectMapper objectMapper = new ObjectMapper();
 
                if (fileName.length() < 3) {
                        fileName = "file_" + fileName;
                }
 
                File file = File.createTempFile(fileName, ".json");
-               objectMapper.defaultPrettyPrintingWriter().writeValue(file, 
viewBean);
+               
JsonUtilsV2.getMapper().defaultPrettyPrintingWriter().writeValue(file, 
viewBean);
 
                return file;
        }
 
        public Map<String, String> jsonToMap(String jsonStr) {
-               if (jsonStr == null || jsonStr.isEmpty()) {
-                       return new HashMap<String, String>();
-               }
 
-               ObjectMapper mapper = new ObjectMapper();
                try {
-                       Map<String, String> tempObject = 
mapper.readValue(jsonStr,
-                                       new TypeReference<Map<String, 
String>>() {
-                                       });
-                       return tempObject;
+                       return JsonUtilsV2.jsonToMap(jsonStr);
 
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
+               } catch (Exception e) {
                        throw restErrorUtil.createRESTException(
                                        "Invalid input data: " + e.getMessage(),
                                        MessageEnums.INVALID_INPUT_DATA);
@@ -87,63 +68,32 @@ public class JSONUtil {
        }
 
        public String readMapToString(Map<?, ?> map) {
-               ObjectMapper mapper = new ObjectMapper();
-               String jsonString = null;
+
                try {
-                       jsonString = mapper.writeValueAsString(map);
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
+                       return JsonUtilsV2.mapToJson(map);
+               } catch (Exception e) {
                        throw restErrorUtil.createRESTException(
                                        "Invalid input data: " + e.getMessage(),
                                        MessageEnums.INVALID_INPUT_DATA);
                }
-               return jsonString;
        }
        
        public String readListToString(List<?> list) {
-               ObjectMapper mapper = new ObjectMapper();
-               String jsonString = null;
+
                try {
-                       jsonString = mapper.writeValueAsString(list);
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
+                       return JsonUtilsV2.listToJson(list);
+               } catch (Exception e) {
                        throw restErrorUtil.createRESTException(
                                        "Invalid input data: " + e.getMessage(),
                                        MessageEnums.INVALID_INPUT_DATA);
                }
-               return jsonString;
        }
 
        public String writeObjectAsString(Serializable obj) {
-               ObjectMapper mapper = new ObjectMapper();
 
-               String jsonStr;
                try {
-                       jsonStr = mapper.writeValueAsString(obj);
-                       return jsonStr;
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
+                       return JsonUtilsV2.objToJson(obj);
+               } catch (Exception e) {
                        throw restErrorUtil.createRESTException(
                                        "Invalid input data: " + e.getMessage(),
                                        MessageEnums.INVALID_INPUT_DATA);
@@ -151,17 +101,10 @@ public class JSONUtil {
        }
 
        public <T> T writeJsonToJavaObject(String json, Class<T> tClass) {
-               ObjectMapper mapper = new ObjectMapper();
 
                try {
-                       return mapper.readValue(json, tClass);
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
+                       return JsonUtilsV2.jsonToObj(json, tClass);
+               } catch (Exception e) {
                        throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
                                        MessageEnums.INVALID_INPUT_DATA);
                }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 
b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index b5caea8..01f1a12 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -111,6 +111,7 @@ import 
org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
 import org.apache.ranger.plugin.store.PList;
 import org.apache.ranger.plugin.store.ServiceStore;
 import org.apache.ranger.plugin.util.GrantRevokeRequest;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.ranger.plugin.util.RangerAccessRequestUtil;
 import org.apache.ranger.plugin.util.RangerPerfTracer;
 import org.apache.ranger.plugin.util.SearchFilter;
@@ -131,7 +132,6 @@ import org.apache.ranger.view.RangerServiceList;
 import org.apache.ranger.view.VXResponse;
 import org.apache.ranger.view.VXString;
 import org.apache.ranger.view.VXUser;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -1923,7 +1923,7 @@ public class ServiceREST {
                        
                        RangerExportPolicyList rangerExportPolicyList = new 
RangerExportPolicyList();
                        svcStore.putMetaDataInfo(rangerExportPolicyList);
-                       String metaDataInfo = new 
ObjectMapper().writeValueAsString(rangerExportPolicyList.getMetaDataInfo());
+                       String metaDataInfo = 
JsonUtilsV2.mapToJson(rangerExportPolicyList.getMetaDataInfo());
                        
                        List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
                        XXTrxLog xxTrxLog = new XXTrxLog();
@@ -1976,7 +1976,7 @@ public class ServiceREST {
                        
                        RangerExportPolicyList rangerExportPolicyList = new 
RangerExportPolicyList();
                        svcStore.putMetaDataInfo(rangerExportPolicyList);
-                       String metaDataInfo = new 
ObjectMapper().writeValueAsString(rangerExportPolicyList.getMetaDataInfo());
+                       String metaDataInfo = 
JsonUtilsV2.mapToJson(rangerExportPolicyList.getMetaDataInfo());
                        
                        List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
                        XXTrxLog xxTrxLog = new XXTrxLog();
@@ -2039,7 +2039,7 @@ public class ServiceREST {
                        if(!checkPoliciesExists){
                                RangerExportPolicyList rangerExportPolicyList = 
new RangerExportPolicyList();
                                
svcStore.putMetaDataInfo(rangerExportPolicyList);
-                               String metaDataInfo = new 
ObjectMapper().writeValueAsString(rangerExportPolicyList.getMetaDataInfo());
+                               String metaDataInfo = 
JsonUtilsV2.mapToJson(rangerExportPolicyList.getMetaDataInfo());
                                                        
                                List<XXTrxLog> trxLogList = new 
ArrayList<XXTrxLog>();
                                XXTrxLog xxTrxLog = new XXTrxLog();
@@ -2126,7 +2126,7 @@ public class ServiceREST {
                                        List<RangerPolicy> policies = null;
                                        rangerExportPolicyList = 
processPolicyInputJsonForMetaData(uploadedInputStream,rangerExportPolicyList);
                                        if (rangerExportPolicyList != null && 
!CollectionUtils.sizeIsEmpty(rangerExportPolicyList.getMetaDataInfo())) {
-                                               metaDataInfo = new 
ObjectMapper().writeValueAsString(rangerExportPolicyList.getMetaDataInfo());
+                                               metaDataInfo = 
JsonUtilsV2.mapToJson(rangerExportPolicyList.getMetaDataInfo());
                                        } else {
                                                LOG.info("metadata info is not 
provided!!");
                                        }
@@ -2343,13 +2343,13 @@ public class ServiceREST {
        }
 
        private RangerExportPolicyList 
processPolicyInputJsonForMetaData(InputStream uploadedInputStream,
-                       RangerExportPolicyList rangerExportPolicyList) throws 
IOException, WebApplicationException {
+                       RangerExportPolicyList rangerExportPolicyList) throws 
Exception {
                Gson gson = new Gson();
                String policiesString = IOUtils.toString(uploadedInputStream);
                policiesString = policiesString.trim();
                if (StringUtils.isNotEmpty(policiesString)) {
                        gson.fromJson(policiesString, 
RangerExportPolicyList.class);
-                       rangerExportPolicyList = new 
ObjectMapper().readValue(policiesString, RangerExportPolicyList.class);
+                       rangerExportPolicyList = 
JsonUtilsV2.jsonToObj(policiesString, RangerExportPolicyList.class);
                } else {
                        LOG.error("Provided json file is empty!!");
                        throw restErrorUtil.createRESTException("Provided json 
file is empty!!");
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
index a96d648..7bd0681 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
@@ -17,11 +17,11 @@
 
 package org.apache.ranger.service;
 
-import java.io.IOException;
 import java.util.Date;
 
 import org.apache.ranger.common.AppConstants;
 import org.apache.ranger.common.DateUtil;
+import org.apache.ranger.common.JSONUtil;
 import org.apache.ranger.common.MessageEnums;
 import org.apache.ranger.common.RESTErrorUtil;
 import org.apache.ranger.db.RangerDaoManager;
@@ -32,9 +32,6 @@ import org.apache.ranger.plugin.model.RangerBaseModelObject;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerService;
 import org.apache.ranger.plugin.model.RangerServiceDef;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
@@ -48,6 +45,9 @@ public class RangerDataHistService {
        
        @Autowired
        RangerDaoManager daoMgr;
+
+       @Autowired
+       JSONUtil jsonUtil;
        
        public static final String ACTION_CREATE = "Create";
        public static final String ACTION_UPDATE = "Update";
@@ -84,12 +84,12 @@ public class RangerDataHistService {
                        RangerServiceDef serviceDef = (RangerServiceDef) 
baseModelObj;
                        objectName = serviceDef.getName();
                        classType = AppConstants.CLASS_TYPE_XA_SERVICE_DEF;
-                       content = writeObjectAsString(serviceDef);
+                       content = jsonUtil.writeObjectAsString(serviceDef);
                } else if(baseModelObj instanceof RangerService) {
                        RangerService service = (RangerService) baseModelObj;
                        objectName = service.getName();
                        classType = AppConstants.CLASS_TYPE_XA_SERVICE;
-                       content = writeObjectAsString(service);
+                       content = jsonUtil.writeObjectAsString(service);
                } else if(baseModelObj instanceof RangerPolicy) {
                        RangerPolicy policy = (RangerPolicy) baseModelObj;
                        objectName = policy.getName();
@@ -102,7 +102,7 @@ public class RangerDataHistService {
                         if(xxServiceDef != null){
                                 policy.setServiceType(xxServiceDef.getName());
                         }
-                       content = writeObjectAsString(policy);
+                       content = jsonUtil.writeObjectAsString(policy);
                }
                
                xDataHist.setObjectClassType(classType);
@@ -126,43 +126,4 @@ public class RangerDataHistService {
                }
        }
 
-       public String writeObjectAsString(RangerBaseModelObject vObj) {
-               ObjectMapper mapper = new ObjectMapper();
-
-               String jsonStr;
-               try {
-                       jsonStr = mapper.writeValueAsString(vObj);
-                       return jsonStr;
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
-                       throw restErrorUtil.createRESTException(
-                                       "Invalid input data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               }
-       }
-
-       public Object writeJsonToJavaObject(String json, Class<?> tClass) {
-               ObjectMapper mapper = new ObjectMapper();
-
-               try {
-                       return mapper.readValue(json, tClass);
-               } catch (JsonParseException e) {
-                       throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (JsonMappingException e) {
-                       throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               } catch (IOException e) {
-                       throw restErrorUtil.createRESTException("Invalid input 
data: " + e.getMessage(),
-                                       MessageEnums.INVALID_INPUT_DATA);
-               }
-       }
-
 }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
index 4117442..95342c3 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
@@ -42,6 +42,7 @@ import 
org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerRowFilterPolicyItem;
 import org.apache.ranger.plugin.model.RangerValiditySchedule;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;
@@ -471,7 +472,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                 if (stringUtil.isEmpty(value) || stringUtil.isEmpty(oldValue)) 
{
                         return false;
                 }
-                ObjectMapper mapper = new ObjectMapper();
+                ObjectMapper mapper = JsonUtilsV2.getMapper();
                 try {
                         List<String> obj = mapper.readValue(value, new 
TypeReference<List<String>>() {
                         });
@@ -511,7 +512,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                        return false;
                }
 
-               ObjectMapper mapper = new ObjectMapper();
+               ObjectMapper mapper = JsonUtilsV2.getMapper();
                try {
                        List<RangerPolicyItem> obj = mapper.readValue(value,
                                        new 
TypeReference<List<RangerPolicyItem>>() {
@@ -558,7 +559,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                        return false;
                }
 
-               ObjectMapper mapper = new ObjectMapper();
+               ObjectMapper mapper = JsonUtilsV2.getMapper();
                try {
                        Map<String, RangerPolicyResource> obj = 
mapper.readValue(value,
                                        new TypeReference<Map<String, 
RangerPolicyResource>>() {
@@ -714,7 +715,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                if (stringUtil.isEmpty(value) || stringUtil.isEmpty(oldValue)) {
                        return false;
                }
-               ObjectMapper mapper = new ObjectMapper();
+               ObjectMapper mapper = JsonUtilsV2.getMapper();
                try {
                        List<RangerDataMaskPolicyItem> obj = 
mapper.readValue(value,
                                        new 
TypeReference<List<RangerDataMaskPolicyItem>>() {
@@ -758,7 +759,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                if (stringUtil.isEmpty(value) || stringUtil.isEmpty(oldValue)) {
                        return false;
                }
-               ObjectMapper mapper = new ObjectMapper();
+               ObjectMapper mapper = JsonUtilsV2.getMapper();
                try {
                        List<RangerRowFilterPolicyItem> obj = 
mapper.readValue(value,
                                        new 
TypeReference<List<RangerRowFilterPolicyItem>>() {
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
index 5525584..b937cff 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
@@ -30,6 +30,7 @@ import java.util.Map.Entry;
 import org.apache.ranger.common.AppConstants;
 import org.apache.ranger.common.JSONUtil;
 import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.ranger.plugin.util.PasswordUtils;
 import org.apache.ranger.common.PropertiesUtil;
 import org.apache.ranger.common.SearchField;
@@ -41,7 +42,6 @@ import org.apache.ranger.entity.XXAsset;
 import org.apache.ranger.entity.XXTrxLog;
 import org.apache.ranger.util.RangerEnumUtil;
 import org.apache.ranger.view.VXAsset;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.type.TypeReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
@@ -189,11 +189,10 @@ public class XAssetService extends 
XAssetServiceBase<XXAsset, VXAsset> {
        public void validateConfig(VXAsset vObj) {
                HashMap<String, Object> configrationMap = null;
                if (vObj.getAssetType() == AppConstants.ASSET_HDFS) {
-                       ObjectMapper objectMapper = new ObjectMapper();
                        TypeReference<HashMap<String, Object>> typeRef = new 
TypeReference
                                        <HashMap<String, Object>>() {};
                        try {
-                               configrationMap = 
objectMapper.readValue(vObj.getConfig(),
+                               configrationMap = 
JsonUtilsV2.getMapper().readValue(vObj.getConfig(),
                                                typeRef);
                        } catch (Exception e) {
                                logger.error("Error in config json", e);
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
index ac9af5e..00ef5e3 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import org.apache.commons.collections.ListUtils;
 import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.JSONUtil;
 import org.apache.ranger.common.RESTErrorUtil;
 import org.apache.ranger.common.RangerFactory;
 import org.apache.ranger.common.SearchCriteria;
@@ -146,6 +147,9 @@ public class TestServiceDBStore {
        @Mock
        RangerTransactionSynchronizationAdapter 
transactionSynchronizationAdapter;
 
+       @Mock
+       JSONUtil jsonUtil;
+
        @Rule
        public ExpectedException thrown = ExpectedException.none();
 
diff --git 
a/security-admin/src/test/java/org/apache/ranger/service/TestRangerDataHistService.java
 
b/security-admin/src/test/java/org/apache/ranger/service/TestRangerDataHistService.java
index e1a236e..65e273c 100644
--- 
a/security-admin/src/test/java/org/apache/ranger/service/TestRangerDataHistService.java
+++ 
b/security-admin/src/test/java/org/apache/ranger/service/TestRangerDataHistService.java
@@ -15,13 +15,8 @@
 
 package org.apache.ranger.service;
 
-import java.util.Date;
-
 import org.apache.ranger.db.RangerDaoManager;
-import org.apache.ranger.entity.XXDataHist;
 import org.apache.ranger.plugin.model.RangerBaseModelObject;
-import org.apache.ranger.plugin.model.RangerPolicy;
-import org.codehaus.jackson.map.ObjectMapper;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,9 +41,6 @@ public class TestRangerDataHistService {
        @Mock
        org.apache.ranger.db.XXDataHistDao XXDataHistDao;
 
-       @Mock
-       ObjectMapper mapper;
-
        @Test
        public void test1CreateObjectDataHistory() {
                String action = "create";
@@ -57,57 +49,4 @@ public class TestRangerDataHistService {
                rangerDataHistService.createObjectDataHistory(baseModelObj, 
action);
 
        }
-
-       @Test
-       public void test2WriteObjectAsString() {
-               RangerBaseModelObject testbaseModelObj = 
createRangerBaseModelObject();
-               rangerDataHistService.writeObjectAsString(testbaseModelObj);
-
-       }
-
-       @Test
-       public void test3WriteJsonToJavaObject() {
-               XXDataHist XXDataHist = createXXDataHistObject();
-               
rangerDataHistService.writeJsonToJavaObject(XXDataHist.getContent(), 
RangerPolicy.class);
-       }
-
-       private XXDataHist createXXDataHistObject() {
-               XXDataHist xDataHist = new XXDataHist();
-               Date date = new Date();
-               xDataHist.setObjectId(1L);
-               xDataHist.setObjectGuid("testGuid");
-               xDataHist.setCreateTime(date);
-               xDataHist.setAction("Create");
-               xDataHist.setVersion(1L);
-               xDataHist.setUpdateTime(date);
-               xDataHist.setFromTime(date);
-
-               
xDataHist.setContent("{\"id\":3,\"guid\":\"c3991965-b063-4fff-b9e5-2e0aa566af29\""
-                               + 
",\"isEnabled\":true,\"createdBy\":\"Admin\",\""
-                               + 
"updatedBy\":\"Admin\",\"createTime\":1529044511083,\"updateTime\""
-                               + 
":1529044511084,\"version\":1,\"service\":\"cl1_storm_01\",\"name\""
-                               + ":\"all - 
topology\",\"policyType\":0,\"description\":\"Policy for all - topology\""
-                               + 
",\"resourceSignature\":\"61c9e34a1c273ed9263940cf79275e94\",\"isAuditEnabled\""
-                               + 
":true,\"resources\":{\"topology\":{\"values\":[\"*\"],\"isExcludes\":false,\"isRecursive\""
-                               + 
":false}},\"policyItems\":[{\"accesses\":[{\"type\":\"submitTopology\",\"isAllowed\":true}"
-                               + 
",{\"type\":\"fileUpload\",\"isAllowed\":true},{\"type\":\"fileDownload\",\"isAllowed\""
-                               + 
":true},{\"type\":\"killTopology\",\"isAllowed\":true},{\"type\":\"rebalance\",\"isAllowed\""
-                               + 
":true},{\"type\":\"activate\",\"isAllowed\":true},{\"type\":\"deactivate\",\"isAllowed\":true},{\"type\":\"getTopologyConf\",\"isAllowed\":true},{\"type\":\"getTopology\",\"isAllowed\":true},{\"type\":\"getUserTopology\",\"isAllowed\":true},{\"type\":\"getTopologyInfo\",\"isAllowed\":true},{\"type\":\"uploadNewCredentials\",\"isAllowed\":true}],\"users\":[\"test\",\"test123\",\"HTTP123\"],\"groups\":[],\"conditions\":[],\"delegateAdmin\":true}],\"denyPolicyItems\":[],\"allowExcept
 [...]
-
-               return xDataHist;
-       }
-
-       private RangerBaseModelObject createRangerBaseModelObject() {
-               RangerBaseModelObject baseModelObj = new 
RangerBaseModelObject();
-               Date date = new Date();
-               baseModelObj.setCreatedBy("admin");
-               baseModelObj.setCreateTime(date);
-               baseModelObj.setGuid("testGuid");
-               baseModelObj.setIsEnabled(true);
-               baseModelObj.setUpdatedBy("admin");
-               baseModelObj.setUpdateTime(date);
-               baseModelObj.setVersion(1L);
-               return baseModelObj;
-
-       }
 }

Reply via email to