svn merge -c 1489634 Merging from trunk to branch-2 to fix HDFS-4840.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489642 13f79535-47bb-0310-9956-ffa450edef68
YARN-753. Added individual factory methods for all api protocol records and converted the records to be abstract classes. Contributed by Jian He.
svn merge --ignore-ancestry -c 1489644 ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489647 13f79535-47bb-0310-9956-ffa450edef68