[ 
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.

Reply via email to