I don't like the idea of having two classes named org.radargun.cachewrappers.InfinispanMapReduceWrapper on the classpath - plugin-infinispan52 has plugin-infinispan51 as a dependency. Moreover, some parts of the code could be shared (seems to me you could provide MapReduceTask factory method in the base class and override it for infinispan52).