package fr.techad.sonar.gerrit.factory; import org.sonar.api.batch.InstantiationStrategy; import org.sonar.api.batch.ScannerSide; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import fr.techad.sonar.GerritConfiguration; import fr.techad.sonar.GerritConstants; import fr.techad.sonar.gerrit.GerritConnector; import fr.techad.sonar.gerrit.network.rest.GerritRestConnector; import fr.techad.sonar.gerrit.network.ssh.GerritSshConnector; @ScannerSide @InstantiationStrategy(InstantiationStrategy.PER_BATCH) public class GerritConnectorFactory { private static final Logger LOG = Loggers.get(GerritConnectorFactory.class); GerritConfiguration gerritConfiguration; GerritConnector gerritConnector; public GerritConnectorFactory(GerritConfiguration gerritConfiguration) { this.gerritConfiguration = gerritConfiguration; if (gerritConfiguration.getScheme().startsWith(GerritConstants.SCHEME_HTTP)) { LOG.debug("[GERRIT PLUGIN] Using REST connector."); gerritConnector = new GerritRestConnector(gerritConfiguration); } else if (gerritConfiguration.getScheme().equals(GerritConstants.SCHEME_SSH)) { LOG.debug("[GERRIT PLUGIN] Using SSH connector."); gerritConnector = new GerritSshConnector(gerritConfiguration); } else { LOG.error("[GERRIT PLUGIN] Unknown scheme."); } } public GerritConnector getConnector() { return gerritConnector; } }