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

Owen O'Malley commented on MAPREDUCE-954:
-----------------------------------------

Only application frameworks like ChainMapper will implement Contexts. 
Applications should only use Contexts.

The MapperImpl is private to map/reduce and will only consist of a method to 
create a ContextImpl. No other method on it will ever be called. ContextImpl 
will have the method bodies to implement the context and will be given the user 
in the places where a Mapper.Context is required.

Since the Context objects are public, we will need to allow bodies on methods 
to support backwards compatibility of frameworks as we add methods to them, so 
they will start as pure abstract classes and slowly gain default bodies for 
added methods.

> 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