Some minor comments on the patch:
(1) The follwoing line in the test case testJobHistoryFilenameParsing() seems to be unused code(so can be removed).
Path inDir = new Path(rootInputDir, "test");
(2) Javadoc for the testcase testJobHistoryFilenameParsing() can be changed to something like history_file_name_parsing/JH_conf_file_name_parsing instead of just saying parsing apis sothat it will be clear that it is validating parsing of file names and not parsing content of files. Also assertion-failure messages should say 'parsing of file names' instead of 'parsing of files'.
(3) testCurrentJHParser() seems to be assuming that the SETUP & CLEANUP tasks will be launched using map slots only. To avoid this assumption, should we set "mapreduce.job.committer.setup.cleanup.needed" to false for this job ?
(4) Please add "lfs.delete(tempDir, true);" in the finally block in testCurrentJHParser() to clean input and output directories.
(5) 2 comments in Pre21JobHistoryConstants.java have missplelt word 'jt-indentifier'.
Other code changes look good.