import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.sonatype.plexus.build.incremental.BuildContext;
final class GeneratorTask extends ParserConfigAware {
private static final Logger LOG = LoggerFactory.getLogger(GeneratorTask.class);
return factory.parserConfig();
}
- List<FileState> execute(final BuildContext buildContext) throws FileGeneratorException, IOException {
+ List<FileState> execute() throws FileGeneratorException, IOException {
// Step one: determine what files are going to be generated
final Stopwatch sw = Stopwatch.createStarted();
final FileGenerator gen = factory.generator();
throw new IllegalStateException("Unsupported file type in " + file);
}
- dirs.put(target.getParentFile(), new WriteTask(buildContext, target, cell.getValue()));
+ dirs.put(target.getParentFile(), new WriteTask(target, cell.getValue()));
}
LOG.info("Sorted {} files into {} directories in {}", dirs.size(), dirs.keySet().size(), sw);
}
private static final class WriteTask {
- private final BuildContext buildContext;
private final GeneratedFile file;
private final File target;
- WriteTask(final BuildContext buildContext, final File target, final GeneratedFile file) {
- this.buildContext = requireNonNull(buildContext);
+ WriteTask(final File target, final GeneratedFile file) {
this.target = requireNonNull(target);
this.file = requireNonNull(file);
}
} catch (IOException e) {
throw new IllegalStateException("Failed to generate file " + target, e);
}
- buildContext.refresh(target);
return ret;
}
}
final List<FileState> files;
try {
- files = task.execute(buildContext);
+ files = task.execute();
} catch (FileGeneratorException | IOException e) {
throw new MojoFailureException(LOG_PREFIX + " Generator " + factory + " failed", e);
}
+ files.forEach(state -> buildContext.refresh(new File(state.path())));
outputFiles.addAll(files);
LOG.info("{} Sources generated by {}: {} in {}", LOG_PREFIX, factory.generatorName(), files.size(),