}
writerPeripheryMap.put(writerID, writerPeriphery);
String splitterClassName = pluginParams
.getValue(PluginConfParamKey.SPLITTER_CLASS_NAME);
ISplitter splitter = null;
if (StringUtils.isEmpty(splitterClassName)) {
splitter = new DefaultSplitter();
} else {
splitter = ReflectionUtil.createInstanceByDefaultConstructor(
splitterClassName, ISplitter.class,
JarLoader.getInstance(writerPath));
}
WritePrepareCallable<List<IParam>> writerCallable = new WritePrepareCallable<List<IParam>>();
writerCallable.writerPeriphery = writerPeriphery;
writerCallable.jobParams = jobParams;
runWithTimeout(new FutureTask<List<IParam>>(writerCallable));
splitter.init(jobParams);
WriteSplitCallable<List<IParam>> splitCallable = new WriteSplitCallable<List<IParam>>();
splitCallable.splitter = splitter;
List<IParam> splittedParam = (List<IParam>) runWithTimeout(new FutureTask<List<IParam>>(
splitCallable));