if (context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(6, 6))) { context.addExtension(XooBuiltInQualityProfilesDefinition.class); if (context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(6, 4))) { context.addExtension(DeprecatedGlobalSensor.class); if (context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(7, 6))) { context.addExtensions( GlobalProjectSensor.class, XooIgnoreCommand.class); if (context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(7, 2))) { context.addExtensions( OneExternalIssuePerLineSensor.class, SignificantCodeSensor.class); if (context.getSonarQubeVersion().isGreaterThanOrEqual(Version.create(7, 3))) { context.addExtension(HotspotSensor.class);
public Optional<UpdateCenter> getUpdateCenter(boolean refreshUpdateCenter) { Optional<UpdateCenter> updateCenter = centerClient.getUpdateCenter(refreshUpdateCenter); if (updateCenter.isPresent()) { org.sonar.api.utils.Version fullVersion = sonarRuntime.getApiVersion(); org.sonar.api.utils.Version semanticVersion = org.sonar.api.utils.Version.create(fullVersion.major(), fullVersion.minor(), fullVersion.patch()); return Optional.of(updateCenter.get().setInstalledSonarVersion(Version.create(semanticVersion.toString())).registerInstalledPlugins( installedPluginReferentialFactory.getInstalledPluginReferential()) .setDate(centerClient.getLastRefreshDate())); } return Optional.absent(); } }
public static Version load(System2 system) { try { URL url = system.getResource(FILE_PATH); String versionInFile = Resources.toString(url, StandardCharsets.UTF_8); return Version.parse(versionInFile); } catch (IOException e) { throw new IllegalStateException("Can not load " + FILE_PATH + " from classpath", e); } } }
Version checkDbVersion(DatabaseMetaData metaData, Version minSupported) throws SQLException { int major = metaData.getDatabaseMajorVersion(); int minor = metaData.getDatabaseMinorVersion(); Version version = Version.create(major, minor, 0); if (version.compareTo(minSupported) < 0) { throw MessageException.of(String.format( "Unsupported %s version: %s. Minimal supported version is %s.", getId(), version, minSupported)); } return version; } }
@Test public void load_from_database_if_server_is_startup_follower() { SonarRuntime runtime = SonarRuntimeImpl.forSonarQube(Version.create(6, 1), SonarQubeSide.SERVER); when(webServer.isStartupLeader()).thenReturn(false); testLoadingFromDatabase(runtime, false); }
@Test public void test_create() { assertVersion(Version.create(1, 2), 1, 2, 0, 0, ""); assertVersion(Version.create(1, 2, 3), 1, 2, 3, 0, ""); assertVersion(Version.create(1, 2, 0, ""), 1, 2, 0, 0, ""); assertVersion(Version.create(1, 2, 3, "build1"), 1, 2, 3, 0, "build1"); assertThat(Version.create(1, 2, 3, "build1").toString()).isEqualTo("1.2.3-build1"); }
public boolean isGreaterThanOrEqual(Version than) { return this.version.isGreaterThanOrEqual(than); } }
@Override public String getVersion() { return runtime.getApiVersion().toString(); }
@Test public void test_compareTo() { assertThat(parse("1.2").compareTo(parse("1.2.0"))).isEqualTo(0); assertThat(parse("1.2.3").compareTo(parse("1.2.3"))).isEqualTo(0); assertThat(parse("1.2.3").compareTo(parse("1.2.4"))).isLessThan(0); assertThat(parse("1.2.3").compareTo(parse("1.3"))).isLessThan(0); assertThat(parse("1.2.3").compareTo(parse("2.1"))).isLessThan(0); assertThat(parse("1.2.3").compareTo(parse("2.0.0"))).isLessThan(0); assertThat(parse("2.0").compareTo(parse("1.2"))).isGreaterThan(0); }
@Test public void test_toString() { assertThat(parse("1").toString()).isEqualTo("1.0"); assertThat(parse("1.2").toString()).isEqualTo("1.2"); assertThat(parse("1.2.3").toString()).isEqualTo("1.2.3"); assertThat(parse("1.2-b1").toString()).isEqualTo("1.2-b1"); assertThat(parse("1.2.3-b1").toString()).isEqualTo("1.2.3-b1"); assertThat(parse("1.2.3.4567").toString()).isEqualTo("1.2.3.4567"); assertThat(parse("1.2.3.4567-beta1").toString()).isEqualTo("1.2.3.4567-beta1"); // do not display zero numbers when possible assertThat(parse("1.2.0.0").toString()).isEqualTo("1.2"); assertThat(parse("1.2.0.1").toString()).isEqualTo("1.2.0.1"); assertThat(parse("1.2.1.0").toString()).isEqualTo("1.2.1"); assertThat(parse("1.2.1.0-beta").toString()).isEqualTo("1.2.1-beta"); }
/** * @return ServerID based on the SonarQube version */ public static String getServerId(SensorContext context) { String str = context.config().get(context.getSonarQubeVersion().isGreaterThanOrEqual(Version.parse("6.7")) ? CoreProperties.SERVER_ID : CoreProperties.PERMANENT_SERVER_ID).orElse(""); int dashIndex = str.indexOf('-'); return (dashIndex == 8) && (str.length() >= 20) ? str.substring(dashIndex + 1) : str; }
public boolean isGreaterThanOrEqual(Version than) { return this.compareTo(than) >= 0; }
@Test public void load_from_database_if_compute_engine_of_startup_follower_server() { SonarRuntime runtime = SonarRuntimeImpl.forSonarQube(Version.create(6, 1), SonarQubeSide.COMPUTE_ENGINE); testLoadingFromDatabase(runtime, false); }
Version checkDbVersion(DatabaseMetaData metaData, Version minSupported) throws SQLException { int major = metaData.getDatabaseMajorVersion(); int minor = metaData.getDatabaseMinorVersion(); Version version = Version.create(major, minor, 0); if (version.compareTo(minSupported) < 0) { throw MessageException.of(String.format( "Unsupported %s version: %s. Minimal supported version is %s.", getId(), version, minSupported)); } return version; } }
public boolean isGreaterThanOrEqual(Version than) { return this.version.isGreaterThanOrEqual(than); } }
@Override public String getVersion() { return runtime.getApiVersion().toString(); }
@Override public void init(DatabaseMetaData metaData) throws SQLException { checkState(!initialized, "onInit() must be called once"); Version version = checkDbVersion(metaData, MIN_SUPPORTED_VERSION); supportsUpsert = version.compareTo(MIN_UPSERT_VERSION) >= 0; if (!supportsUpsert) { Loggers.get(getClass()).warn("Upgrading PostgreSQL to {} or greater is recommended for better performances", MIN_UPSERT_VERSION); } initialized = true; } }