package fr.techad.sonar;
import org.sonar.api.batch.bootstrap.ProjectBuilder;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import fr.techad.sonar.gerrit.GerritFacade;
import fr.techad.sonar.gerrit.factory.GerritFacadeFactory;
import fr.techad.sonar.gerrit.review.ReviewInput;
public class GerritProjectBuilder extends ProjectBuilder {
private static final Logger LOG = Loggers.get(GerritProjectBuilder.class);
private final GerritConfiguration gerritConfiguration;
private final GerritFacade gerritFacade;
public GerritProjectBuilder(GerritConfiguration gerritConfiguration, GerritFacadeFactory gerritFacadeFactory) {
LOG.debug("[GERRIT PLUGIN] Instanciating GerritProjectBuilder");
this.gerritConfiguration = gerritConfiguration;
this.gerritFacade = gerritFacadeFactory.getFacade();
}
@Override
public void build(Context context) {
if (!gerritConfiguration.isEnabled()) {
LOG.error("[GERRIT PLUGIN] Plugin is disabled. Wont send.");
return;
}
if (!gerritConfiguration.isValid()) {
LOG.error("[GERRIT PLUGIN] Configuration is invalid. Wont send.");
return;
}
ReviewInput ri = new ReviewInput();
ri.setValueAndLabel(0, gerritConfiguration.getLabel());
ri.setMessage("Sonar review in progress …");
try {
gerritFacade.setReview(ri);
} catch (GerritPluginException e) {
LOG.error("[GERRIT PLUGIN] Sending initial status failed", e);
}
}
}