[ https://issues.apache.org/jira/browse/MAPREDUCE-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12756786#action_12756786 ]
Aaron Kimball commented on MAPREDUCE-954: ----------------------------------------- I don't see how this new state of affairs improves MRUnit. MRUnit still needs to implement the "hack" of having a dummy Mapper class ({{MockMapContextWrapper}}) that wraps around the Context that it creates, when from an architectural standpoint, MRUnit would like to just feed a wholely-divorced top-level MockMapContext into the client's Mapper implementation. Switching Mapper to include an abstract class Context instead of a concrete class Context which is used by its {{map()}} method does not allow MRUnit to do the "right" thing; MRUnit still takes advantage of the fact that Mapper.Context is non-static purely for purposes of saving typing in the {{map()}} method's type signature (by absorbing the generic qualifiers) and assumes that it can fully replace the implementation with its own. My understanding is that the purpose of moving from {{interface Mapper}} to {{class Mapper}} was to allow forward-evolvable APIs with default implementations. Switching back from abstract classes to interfaces again seems like asking for trouble a few months down the line when we need to add some default behavior. > 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, MAPREDUCE-954.patch, > 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.