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