public static void coerce(String qualSource, String qualDest, int renameMode, PathLister lister, RecordStreamFactory factin, RecordStreamFactory factout, String extensionOnRename, Configuration configuration) throws IOException {
if(!Utils.hasScheme(qualSource) || !Utils.hasScheme(qualDest))
throw new IllegalArgumentException("source and dest must have schemes " + qualSource + " " + qualDest);
FileCopyArgs args = new FileCopyArgs(qualSource, qualDest, renameMode, lister, extensionOnRename);
JobConf conf = new JobConf(configuration, Coercer.class);
Utils.setObject(conf, FileCopyInputFormat.ARGS, args);
Utils.setObject(conf, FACTIN_ARG, factin);
Utils.setObject(conf, FACTOUT_ARG, factout);