Tests fail due to runtime dependence on jobclient main jar. The test jar and hs jars are still unnecessary.
The runtime dependence comes due to subclasses of ClientProtocolProvider classes being loaded at runtime
ClientProtocolProvider exists in hadoop-mapreduce-core.
LocalClientProtocolProvider and associated classes such as LocalJobRunner exist in hadoop-mapreduce-client-common
YarnClientProtocolProvider and associated classes such as YarnRunner exist in hadoop-mapreduce-jobclient.
Any reason why these classes have been kept this way ? All can move to hadoop-mapreduce-client-core IMHO. This creates unnecessary dependencies.
hadoop-mapreduce-client-jobclient seems to be having hardly any main classes now. Is it even required as a separate submodule ?