[2/3] hadoop git commit: HADOOP-13628. Support to retrieve specific property from configuration via REST API. Contributed by Weiwei Yang
HADOOP-13628. Support to retrieve specific property from configuration via REST API. Contributed by Weiwei Yang (cherry picked from commit 00160f71b6d98244fcb1cb58b2db9fc24f1cd672) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/407bbe39 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/407bbe39 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/407bbe39 Branch: refs/heads/branch-2.8 Commit: 407bbe39facf308a6c954e5b901860eacdfd4707 Parents: 8fdcf86 Author: John Zhuge Authored: Fri Aug 11 11:02:14 2017 -0700 Committer: John Zhuge Committed: Fri Aug 11 11:02:14 2017 -0700 -- .../org/apache/hadoop/conf/ConfServlet.java | 19 +- .../org/apache/hadoop/conf/Configuration.java | 284 +++ .../org/apache/hadoop/conf/TestConfServlet.java | 122 +++- .../apache/hadoop/conf/TestConfiguration.java | 139 - 4 files changed, 491 insertions(+), 73 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/407bbe39/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java index f9a2535..cfd7b97 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java @@ -76,11 +76,14 @@ public class ConfServlet extends HttpServlet { response.setContentType("application/json; charset=utf-8"); } +String name = request.getParameter("name"); Writer out = response.getWriter(); try { - writeResponse(getConfFromContext(), out, format); + writeResponse(getConfFromContext(), out, format, name); } catch (BadFormatException bfe) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, bfe.getMessage()); +} catch (IllegalArgumentException iae) { + response.sendError(HttpServletResponse.SC_NOT_FOUND, iae.getMessage()); } out.close(); } @@ -95,17 +98,23 @@ public class ConfServlet extends HttpServlet { /** * Guts of the servlet - extracted for easy testing. */ - static void writeResponse(Configuration conf, Writer out, String format) -throws IOException, BadFormatException { + static void writeResponse(Configuration conf, + Writer out, String format, String propertyName) + throws IOException, IllegalArgumentException, BadFormatException { if (FORMAT_JSON.equals(format)) { - Configuration.dumpConfiguration(conf, out); + Configuration.dumpConfiguration(conf, propertyName, out); } else if (FORMAT_XML.equals(format)) { - conf.writeXml(out); + conf.writeXml(propertyName, out); } else { throw new BadFormatException("Bad format: " + format); } } + static void writeResponse(Configuration conf, Writer out, String format) + throws IOException, BadFormatException { +writeResponse(conf, out, format, null); + } + public static class BadFormatException extends Exception { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/hadoop/blob/407bbe39/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java index a746119..cf02070 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java @@ -101,8 +101,9 @@ import org.w3c.dom.Text; import org.xml.sax.SAXException; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; -/** +/** * Provides access to configuration parameters. * * Resources @@ -2756,14 +2757,37 @@ public class Configuration implements Iterable>, writeXml(new OutputStreamWriter(out, "UTF-8")); } - /** - * Write out the non-default properties in this configuration to the given - * {@link Writer}. - * + public void writeXml(Writer out) throws IOException { +writeXml(null, out); + } + + /** + * Write out the non-default properties in this configuration to the + * given {@link Writer}. + * + * + * When property name is not empty and the property exists in the + * configuration, this method writes the property and its attr
[2/3] hadoop git commit: HADOOP-13628. Support to retrieve specific property from configuration via REST API. Contributed by Weiwei Yang
HADOOP-13628. Support to retrieve specific property from configuration via REST API. Contributed by Weiwei Yang (cherry picked from commit 00160f71b6d98244fcb1cb58b2db9fc24f1cd672) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/76c4aee2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/76c4aee2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/76c4aee2 Branch: refs/heads/branch-2 Commit: 76c4aee2e3fd66750df94efd4e5b7504a6c1e6fa Parents: 9ba3268 Author: John Zhuge Authored: Fri Aug 11 10:54:30 2017 -0700 Committer: John Zhuge Committed: Fri Aug 11 10:54:30 2017 -0700 -- .../org/apache/hadoop/conf/ConfServlet.java | 19 +- .../org/apache/hadoop/conf/Configuration.java | 284 +++ .../org/apache/hadoop/conf/TestConfServlet.java | 122 +++- .../apache/hadoop/conf/TestConfiguration.java | 139 - 4 files changed, 491 insertions(+), 73 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/76c4aee2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java index f9a2535..cfd7b97 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/ConfServlet.java @@ -76,11 +76,14 @@ public class ConfServlet extends HttpServlet { response.setContentType("application/json; charset=utf-8"); } +String name = request.getParameter("name"); Writer out = response.getWriter(); try { - writeResponse(getConfFromContext(), out, format); + writeResponse(getConfFromContext(), out, format, name); } catch (BadFormatException bfe) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, bfe.getMessage()); +} catch (IllegalArgumentException iae) { + response.sendError(HttpServletResponse.SC_NOT_FOUND, iae.getMessage()); } out.close(); } @@ -95,17 +98,23 @@ public class ConfServlet extends HttpServlet { /** * Guts of the servlet - extracted for easy testing. */ - static void writeResponse(Configuration conf, Writer out, String format) -throws IOException, BadFormatException { + static void writeResponse(Configuration conf, + Writer out, String format, String propertyName) + throws IOException, IllegalArgumentException, BadFormatException { if (FORMAT_JSON.equals(format)) { - Configuration.dumpConfiguration(conf, out); + Configuration.dumpConfiguration(conf, propertyName, out); } else if (FORMAT_XML.equals(format)) { - conf.writeXml(out); + conf.writeXml(propertyName, out); } else { throw new BadFormatException("Bad format: " + format); } } + static void writeResponse(Configuration conf, Writer out, String format) + throws IOException, BadFormatException { +writeResponse(conf, out, format, null); + } + public static class BadFormatException extends Exception { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/hadoop/blob/76c4aee2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java index 40509c1..89714bf 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java @@ -103,8 +103,9 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; -/** +/** * Provides access to configuration parameters. * * Resources @@ -2866,14 +2867,37 @@ public class Configuration implements Iterable>, writeXml(new OutputStreamWriter(out, "UTF-8")); } - /** - * Write out the non-default properties in this configuration to the given - * {@link Writer}. - * + public void writeXml(Writer out) throws IOException { +writeXml(null, out); + } + + /** + * Write out the non-default properties in this configuration to the + * given {@link Writer}. + * + * + * When property name is not empty and the property exists in the + * configuration, this method writes the property and its attribu