I considered and rejected this plan, but I don't remember why any more.  Perhaps it's because of the Hadoop versions?  This code changes quite a bit between Hadoop versions, so if I subclass it, am I not committing to a specific version of the bytecode?  This is the same issue with checking whether the native snappy libs are loaded.