[ https://issues.apache.org/jira/browse/MAPREDUCE-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755758#action_12755758 ]
Arun C Murthy commented on MAPREDUCE-954: ----------------------------------------- After a bit more thought I have to insist that we make {Job|TaskAttempt|TaskInputOutput|Map|Reduce}Context interfaces. Let me explain. Today each in that list extends the other, however making them abstract classes and pairing them with concrete {Job|TaskAttempt|TaskInputOutput|Map|Reduce}ContextImpl classes results in the necessity for MI for problem arises since we need MI {TaskAttempt|TaskInputOutput|Map|Reduce}ContextImpl (for e.g. TaskAttemptContextImpl should need to extend the JobContextImpl *and* be a TaskAttemptContext, thus MI). Hence I propose we make the top-level classes interfaces. However, {Mapper|Reduce}.Context will be abstract classes for the same reasons that Owen put down. ---- Thoughts? > 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.