private void persistTraversals(GraphRewrite event, EvaluationContext context)
{
WindupConfigurationModel configurationModel = WindupConfigurationService.getConfigurationModel(event.getGraphContext());
configurationModel.getInputPaths().forEach(fileModel -> {
ProjectModel projectModel = fileModel.getProjectModel();
if (projectModel == null)
return;
ProjectModelTraversal allTraversal = new ProjectModelTraversal(projectModel, new AllTraversalStrategy());
GraphService<OverviewReportLineMessageModel> lineNotesService = new GraphService<>(event.getGraphContext(), OverviewReportLineMessageModel.class);
PersistedProjectModelTraversalModel rootAllTraversal = persistTraversal(event, null, allTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.ALL);
Set<ProjectModel> allProjects = allTraversal.getAllProjects(true);
Set<String> dupeCheck = new HashSet<>();
for (OverviewReportLineMessageModel line : lineNotesService.findAll())
{
if (dupeCheck.contains(line.getMessage()))
continue;
if (!allProjects.contains(line.getProject()))
continue;
dupeCheck.add(line.getMessage());
rootAllTraversal.addApplicationMessages(line);
}
ProjectModelTraversal onlyOnceTraversal = new ProjectModelTraversal(projectModel, new OnlyOnceTraversalStrategy());
persistTraversal(event, null, onlyOnceTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.ONLY_ONCE);
ProjectModelTraversal sharedOnlyTraversal = new ProjectModelTraversal(projectModel, new SharedLibsTraversalStrategy());
persistTraversal(event, null, sharedOnlyTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.SHARED_ONLY);
});
}