You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Adrian Woodhead (JIRA)" <ji...@apache.org> on 2007/12/06 13:25:43 UTC

[jira] Updated: (HADOOP-2268) JobControl classes should use interfaces rather than implemenations

     [ https://issues.apache.org/jira/browse/HADOOP-2268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adrian Woodhead updated HADOOP-2268:
------------------------------------

    Attachment: HADOOP-2268-3.patch

OK, here is another version which scales back this patch so as not to have any backward compat issues. I have left the implementation "leak" in public methods but have changed the private Hashtables in JobControl.java to Maps. For the dependingJobs list in Job.java, I have added the type param <Job> to remove the compiler warnings which were the original motivator for this patch. I haven't gone with the suggestion of adding a method addDependentJob as the word "dependent" means jobs that depend on you whereas here we mean jobs that you depend on so I can see this leading to confusion if we changed it, the names are correct as they are. This unfortunately means I can't figure out a way to get around the implementation leak without breaking backward compat so I suggest we just leave it for now. This is a problem in many other hadoop classes so my suggestion would be to tackle this as one big issue one day if you decide you are going to do a release that is going to break backward compat.

> JobControl classes should use interfaces rather than implemenations
> -------------------------------------------------------------------
>
>                 Key: HADOOP-2268
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2268
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.15.0
>            Reporter: Adrian Woodhead
>            Assignee: Adrian Woodhead
>            Priority: Minor
>             Fix For: 0.16.0
>
>         Attachments: HADOOP-2268-1.patch, HADOOP-2268-2.patch, HADOOP-2268-3.patch
>
>
> See HADOOP-2202 for background on this issue. Arun C. Murthy agrees that when possible it is preferable to program against the interface rather than a concrete implementation (more flexible, allows for changes of the implementation in future etc.) JobControl currently exposes running, waiting, ready, successful and dependent jobs as ArrayList rather than List. I propose to change this to List.
> I will code up a patch for this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.