[ 
https://issues.apache.org/jira/browse/MAPREDUCE-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12753708#action_12753708
 ] 

Doug Cutting commented on MAPREDUCE-954:
----------------------------------------

> we should take this opportunity to atleast make the Context Objects pure 
> abstract classes if not go the full hog and make them interfaces.

I'm okay with pure abstract classes but have concerns about the evolvability of 
interfaces.

I'm trying to understand Owen's proposal.  Here's my guess: Applications won't 
implement Mapper.Context.  Rather the framework will implement it, and 
applications will access it referencing the abstract API.  But for the 
framework to implement it, it must define it within a Mapper, since it cannot 
be a static, standalone class and still be generic.  The framework's Mapper 
implementation won't actually be used other than to create a 
Mapper.ContextImpl--other mapper methods will throw 
UnimplementedMethodException. Do I have this right?


> The new interface's Context objects should be interfaces
> --------------------------------------------------------
>
>                 Key: MAPREDUCE-954
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-954
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: client
>            Reporter: Owen O'Malley
>            Assignee: Arun C Murthy
>             Fix For: 0.21.0
>
>         Attachments: MAPREDUCE-954.patch
>
>
> When I was doing HADOOP-1230, I was persuaded to make the Context objects as 
> classes. I think that was a serious mistake. It caused a lot of information 
> leakage into the public classes.

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