[ 
http://issues.apache.org/jira/browse/HADOOP-24?page=comments#action_12378979 ] 

Gal Nitzan commented on HADOOP-24:
----------------------------------

Since this is my first interaction with Hadoop code "on a first name basis" :) 
I didn't want to rock the boat too much.

My first goal was to implement the interfaces and the implementation with as 
little as possible major changes all arround the code. As it is now all test 
are still working and nothing broken.

So if the patch would "pass" the reviews it would be easier to make additions 
when all blocks are in place.

getPropertyNames is good idea to add as an interface to configuration.

Thanks.

> make Configuration an interface
> -------------------------------
>
>          Key: HADOOP-24
>          URL: http://issues.apache.org/jira/browse/HADOOP-24
>      Project: Hadoop
>         Type: Improvement

>   Components: conf
>     Reporter: Doug Cutting
>  Attachments: HADOOP-24.patch, HADOOP-24.patch
>
> The Configuration class should become an interface, e.g.:
> public interface Configuration {
>   String get(String nam);
>   String set(String name, String value);
>   int getInt(String name);
>   void setInt(String name, int value);
>   float getFloat(String name);
>   void setFloat(String name, float value);
>   //... other utility methods based on get(String) and set(String,String) ...
> }
> An abstract class named ConfigurationBase should be implemented as follows:
> public abstract class ConfigurationBase implements Configuration {
>   abstract public String get(String nam);
>   abstract public String set(String name, String value);
>   public  int getInt(String name) { ... implementation in terms of 
> get(String) ... }
>   public void setInt(String name, int value) {... implementation in terms of 
> set(String, String) ...}
>   public float getFloat(String name)  { ... implementation in terms of 
> get(String) ... }
>   public void setFloat(String name, float value)  {... implementation in 
> terms of set(String, String) ...}
>   //... other utility methods based on get(String) and set(String,String) ...
> }
> A concrete, default implementation will be provided as follows:
> public class ConfigurationImpl implements Writable extends ConfigurationBase {
>   private Properties properties;
>   // implement abstract methods from ConfigurationBase
>   public String get(String name) { ... implemented in terms of props ...}
>   public String set(String name, String value) { .. implemented in terms of 
> props ... }
>   // Writable methods
>   public write(DataOutputStream out);
>   public readFields(DataInputStream in);
>   // permit chaining of configurations
>   public Configuration getDefaults();
>   public void setDefaults(Configuration defaults);
> }
> Only code which creates configurations should need to be updated, so this 
> shouldn't be a huge change.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to