public WorkResult execute(T spec) {
StaleClassCleaner cleaner = createCleaner(spec);
cleaner.setDestinationDir(spec.getDestinationDir());
cleaner.setSource(spec.getSource());
cleaner.execute();
Compiler<? super T> compiler = getCompiler();
return compiler.execute(spec);
}