HADOOP-14601. Azure: Reuse ObjectMapper. Contributed by Mingliang Liu
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b08cc973 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b08cc973 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b08cc973 Branch: refs/heads/YARN-5734 Commit: b08cc973964b4eb7e7a7445a440b19d3a0f3d4d5 Parents: 0c52da7 Author: Mingliang Liu <[email protected]> Authored: Tue Jun 27 16:27:09 2017 -0700 Committer: Mingliang Liu <[email protected]> Committed: Thu Jun 29 09:22:00 2017 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/fs/azure/NativeAzureFileSystem.java | 8 +++++--- .../apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java | 10 +++++----- .../apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java | 7 ++++--- 3 files changed, 14 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b08cc973/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java index d605e81..22f79ff 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java @@ -46,6 +46,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectReader; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; @@ -109,6 +110,9 @@ public class NativeAzureFileSystem extends FileSystem { private static final int FORMATTING_BUFFER = 10000; private boolean committed; public static final String SUFFIX = "-RenamePending.json"; + private static final ObjectReader READER = new ObjectMapper() + .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) + .readerFor(JsonNode.class); // Prepare in-memory information needed to do or redo a folder rename. public FolderRenamePending(String srcKey, String dstKey, SelfRenewingLease lease, @@ -168,11 +172,9 @@ public class NativeAzureFileSystem extends FileSystem { String contents = new String(bytes, 0, l, Charset.forName("UTF-8")); // parse the JSON - ObjectMapper objMapper = new ObjectMapper(); - objMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); JsonNode json = null; try { - json = objMapper.readValue(contents, JsonNode.class); + json = READER.readValue(contents); this.committed = true; } catch (JsonMappingException e) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/b08cc973/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java index 387d911..0e9c700 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteSASKeyGeneratorImpl.java @@ -24,6 +24,7 @@ import java.net.URISyntaxException; import java.net.UnknownHostException; import java.security.PrivilegedExceptionAction; +import com.fasterxml.jackson.databind.ObjectReader; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; import org.apache.hadoop.conf.Configuration; @@ -56,6 +57,9 @@ public class RemoteSASKeyGeneratorImpl extends SASKeyGeneratorImpl { public static final Logger LOG = LoggerFactory.getLogger(AzureNativeFileSystemStore.class); + private static final ObjectReader RESPONSE_READER = new ObjectMapper() + .readerFor(RemoteSASKeyGenerationResponse.class); + /** * Container SAS Key generation OP name. {@value} */ @@ -276,11 +280,7 @@ public class RemoteSASKeyGeneratorImpl extends SASKeyGeneratorImpl { httpGet.setHeader("Cookie", AuthenticatedURL.AUTH_COOKIE + "=" + token); } String responseBody = remoteCallHelper.makeRemoteGetRequest(httpGet); - - ObjectMapper objectMapper = new ObjectMapper(); - return objectMapper.readValue(responseBody, - RemoteSASKeyGenerationResponse.class); - + return RESPONSE_READER.readValue(responseBody); } catch (WasbRemoteCallException remoteCallEx) { throw new SASKeyGenerationException("Encountered RemoteCallException" + " while retrieving SAS key from remote service", remoteCallEx); http://git-wip-us.apache.org/repos/asf/hadoop/blob/b08cc973/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java index 3c912d7..b1e671d 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/RemoteWasbAuthorizerImpl.java @@ -21,6 +21,7 @@ package org.apache.hadoop.fs.azure; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectReader; import com.google.common.annotations.VisibleForTesting; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; @@ -53,6 +54,8 @@ public class RemoteWasbAuthorizerImpl implements WasbAuthorizerInterface { public static final Logger LOG = LoggerFactory .getLogger(RemoteWasbAuthorizerImpl.class); + private static final ObjectReader RESPONSE_READER = new ObjectMapper() + .readerFor(RemoteAuthorizerResponse.class); private String remoteAuthorizerServiceUrl = null; @@ -193,10 +196,8 @@ public class RemoteWasbAuthorizerImpl implements WasbAuthorizerInterface { throw new WasbAuthorizationException("Error in check authorize", e); } - ObjectMapper objectMapper = new ObjectMapper(); RemoteAuthorizerResponse authorizerResponse = - objectMapper - .readValue(responseBody, RemoteAuthorizerResponse.class); + RESPONSE_READER.readValue(responseBody); if (authorizerResponse == null) { throw new WasbAuthorizationException( --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
