[
https://issues.apache.org/jira/browse/HADOOP-5708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12702038#action_12702038
]
Doug Cutting commented on HADOOP-5708:
--------------------------------------
> I am working on this ticket.
Shevek, this issue was closed, since the current implementation already
supports the requested feature.
Your re-implementation of Configuration should be submitted in a new issue.
A few comments on your patch:
- it includes a lot of whitespace-only changes that make it hard to read
- the formatting is not in accord with Hadoop conventions
- while writeXml()'s documentation says that non-default values are not
written, in fact they are. This permits, for example the values from one's
core-site.xml to be transmitted with a job, as they should be. So the
documentation is in error here, not the implementation. If defaults are
inherited, then, when writing, we should first write non-default values, then
only write each value from the defaults if it's not already been written.
> Configuration should provide a way to write only properties that have been set
> ------------------------------------------------------------------------------
>
> Key: HADOOP-5708
> URL: https://issues.apache.org/jira/browse/HADOOP-5708
> Project: Hadoop Core
> Issue Type: Improvement
> Components: conf
> Affects Versions: 0.19.1
> Reporter: Topher ZiCornell
> Priority: Minor
> Attachments: 01_configuration.patch
>
>
> The Configuration.write and .writeXml methods always output all properties,
> whether they came from a default source, a loaded resource file, or an
> "overlay" set call. There should be a way to write only the properties that
> were set, leaving out the properties that came from a default source.
> Why? Suppose I build a configuration on a machine that is not associated
> with a grid, write it out to XML, then try to load it on a grid gateway. The
> configuration would contain all of the defaults picked up from my non-grid
> machine, and would completely overwrite all the defaults on that grid.
> I propose to add methods to write out only the overlay values in Object and
> XML formats.
> I see two options for implementing this:
> 1) Either completely new methods could be crafted (writeOverlay(DataOutput)
> and writeOverlayXml(OutputStream), or
> 2) The existing write() and writeXml() methods could be adjusted to take an
> additional parameter indicating whether the full properties or overlay
> properties should be written. (Of course, the existing write() and
> writeXml() methods would remain, defaulting to the current behavior.)
> Option 1 has less impact to existing code. Option 2 is a cleaner
> implementation with less code-duplication involved. I would much prefer to
> do option 2.
> Oh, and in case it's not clear, I'm offering to make this change and submit
> it.
> Thoughts?
> . Topher
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.