Search in sources :

Example 1 with Version

use of org.sonarsource.sonarlint.core.plugin.Version in project sonarlint-core by SonarSource.

the class PluginReferencesDownloader method checkVersion.

private static boolean checkVersion(@Nullable String version, @Nullable String minVersion) {
    if (version != null && minVersion != null) {
        Version v = Version.create(version);
        Version minimalVersion = Version.create(minVersion);
        return v.compareTo(minimalVersion) >= 0;
    }
    return true;
}
Also used : Version(org.sonarsource.sonarlint.core.plugin.Version)

Example 2 with Version

use of org.sonarsource.sonarlint.core.plugin.Version in project sonarlint-core by SonarSource.

the class ServerVersionAndStatusChecker method checkVersionAndStatus.

/**
 * Checks SonarQube version against a provided minimum version
 * @return ServerInfos
 * @throws UnsupportedServerException if version < minimum supported version
 * @throws IllegalStateException If server is not ready
 */
public ServerInfos checkVersionAndStatus(String minVersion) {
    ServerInfos serverStatus = fetchServerInfos();
    if (!"UP".equals(serverStatus.getStatus())) {
        throw new IllegalStateException(serverNotReady(serverStatus));
    }
    Version serverVersion = Version.create(serverStatus.getVersion());
    if (serverVersion.compareToIgnoreQualifier(Version.create(minVersion)) < 0) {
        throw new UnsupportedServerException(unsupportedVersion(serverStatus, minVersion));
    }
    return serverStatus;
}
Also used : Version(org.sonarsource.sonarlint.core.plugin.Version) ServerInfos(org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos) UnsupportedServerException(org.sonarsource.sonarlint.core.client.api.exceptions.UnsupportedServerException)

Example 3 with Version

use of org.sonarsource.sonarlint.core.plugin.Version in project sonarlint-core by SonarSource.

the class WsHelperImpl method validateConnection.

static ValidationResult validateConnection(SonarLintWsClient client, @Nullable String organizationKey) {
    ServerVersionAndStatusChecker serverChecker = new ServerVersionAndStatusChecker(client);
    AuthenticationChecker authChecker = new AuthenticationChecker(client);
    try {
        ServerInfos serverStatus = serverChecker.checkVersionAndStatus();
        ValidationResult validateCredentials = authChecker.validateCredentials();
        if (validateCredentials.success() && organizationKey != null) {
            Version serverVersion = Version.create(serverStatus.getVersion());
            if (serverVersion.compareToIgnoreQualifier(Version.create(MIN_VERSION_FOR_ORGANIZATIONS)) < 0) {
                return new DefaultValidationResult(false, "No organization support for this server version: " + serverStatus.getVersion());
            }
            if (fetchOrganizations(client, organizationKey, new ProgressWrapper(null)).isEmpty()) {
                return new DefaultValidationResult(false, "No organizations found for key: " + organizationKey);
            }
        }
        return validateCredentials;
    } catch (UnsupportedServerException e) {
        return new DefaultValidationResult(false, e.getMessage());
    } catch (RuntimeException e) {
        throw SonarLintWrappedException.wrap(e);
    }
}
Also used : ProgressWrapper(org.sonarsource.sonarlint.core.util.ProgressWrapper) ServerVersionAndStatusChecker(org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker) Version(org.sonarsource.sonarlint.core.plugin.Version) AuthenticationChecker(org.sonarsource.sonarlint.core.container.connected.validate.AuthenticationChecker) DefaultValidationResult(org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult) ServerInfos(org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos) ValidationResult(org.sonarsource.sonarlint.core.client.api.connected.ValidationResult) DefaultValidationResult(org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult) UnsupportedServerException(org.sonarsource.sonarlint.core.client.api.exceptions.UnsupportedServerException)

Example 4 with Version

use of org.sonarsource.sonarlint.core.plugin.Version in project sonarlint-core by SonarSource.

the class ServerVersionAndStatusChecker method validateStatusAndVersion.

public ValidationResult validateStatusAndVersion(String minVersion) {
    ServerInfos serverStatus = fetchServerInfos();
    if (!"UP".equals(serverStatus.getStatus())) {
        return new DefaultValidationResult(false, serverNotReady(serverStatus));
    }
    Version serverVersion = Version.create(serverStatus.getVersion());
    if (serverVersion.compareToIgnoreQualifier(Version.create(minVersion)) < 0) {
        return new DefaultValidationResult(false, unsupportedVersion(serverStatus, minVersion));
    }
    return new DefaultValidationResult(true, "Compatible and ready");
}
Also used : Version(org.sonarsource.sonarlint.core.plugin.Version) ServerInfos(org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos)

Example 5 with Version

use of org.sonarsource.sonarlint.core.plugin.Version in project sonarlint-intellij by SonarSource.

the class ServerUpdateTask method tooOld.

private static boolean tooOld(SonarAnalyzer analyzer) {
    if (analyzer.minimumVersion() != null && analyzer.version() != null) {
        Version minimum = Version.create(analyzer.minimumVersion());
        Version version = Version.create(analyzer.version());
        return version.compareTo(minimum) < 0;
    }
    return false;
}
Also used : Version(org.sonarsource.sonarlint.core.plugin.Version)

Aggregations

Version (org.sonarsource.sonarlint.core.plugin.Version)5 ServerInfos (org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos)3 UnsupportedServerException (org.sonarsource.sonarlint.core.client.api.exceptions.UnsupportedServerException)2 ValidationResult (org.sonarsource.sonarlint.core.client.api.connected.ValidationResult)1 AuthenticationChecker (org.sonarsource.sonarlint.core.container.connected.validate.AuthenticationChecker)1 DefaultValidationResult (org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult)1 ServerVersionAndStatusChecker (org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker)1 ProgressWrapper (org.sonarsource.sonarlint.core.util.ProgressWrapper)1