/* * Copyright 2013 - 2014 Felix Müller * * This file is part of CodeQ Invest. * * CodeQ Invest is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * CodeQ Invest is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with CodeQ Invest. If not, see <http://www.gnu.org/licenses/>. */ package org.codeqinvest.quality.analysis; import lombok.extern.slf4j.Slf4j; import org.codeqinvest.quality.Project; import org.codeqinvest.quality.repository.ProjectRepository; /** * This {@code Runnable} implementation is used in the * quality analyzer scheduler to encapsulate the job logic. * * @author fmueller */ @Slf4j class AnalyzerRunnable implements Runnable { private final long projectId; private final ProjectRepository projectRepository; private final QualityAnalyzerService qualityAnalyzerService; public AnalyzerRunnable(Project project, ProjectRepository projectRepository, QualityAnalyzerService qualityAnalyzerService) { this.projectId = project.getId(); this.projectRepository = projectRepository; this.qualityAnalyzerService = qualityAnalyzerService; } /** * Executes an analysis run. */ @Override public void run() { Project project = projectRepository.findOne(projectId); if (project != null) { project.setHadAnalysis(true); projectRepository.save(project); log.info("Start analyzer run for project {}", project.getName()); qualityAnalyzerService.analyzeProject(project); log.info("Finished analyzer run for project {}", project.getName()); } else { log.error("Could not find project with id " + projectId + " for starting an analyzer run!"); } } }