@BatchSide @ServerSide @ComputeEngineSide @Immutable public class SonarQubeVersion extends Object
Sensor
wants to use an API introduced in version 5.5 and still requires to support older versions
at runtime.
public class MySensor implements Sensor { public void execute(SensorContext context) { if (context.getSonarQubeVersion().isGreaterThanOrEqual(SonarQubeVersion.V5_5)) { context.newMethodIntroducedIn5_5(); } } }Example 2: a plugin needs to use an API introduced in version 5.6 (
AnApi
in the following
snippet) and still requires to support version 5.5 at runtime.
// Component provided by sonar-plugin-api // @since 5.5 public interface AnApi { // implicitly since 5.5 public void foo(); // @since 5.6 public void bar(); } // Component provided by plugin public class MyExtension { private final SonarQubeVersion sonarQubeVersion; private final AnApi api; public MyExtension(SonarQubeVersion sonarQubeVersion, AnApi api) { this.sonarQubeVersion = sonarQubeVersion; this.api = api; } public void doSomething() { // assume that runtime is 5.5+ api.foo(); if (sonarQubeVersion.isGreaterThanOrEqual(SonarQubeVersion.V5_6)) { api.bar(); } } }
The minimal supported version of SonarQube is verified at runtime. As plugin is built with sonar-plugin-api 5.6, we assume that the plugin requires v5.6 or greater at runtime. For this reason the plugin must default which is the minimal supported version in the configuration of sonar-packaging-maven-plugin 1.16+:
<packaging>sonar-plugin</packaging> <dependencies> <dependency> <groupId>org.sonarsource.sonarqube</groupId> <artifactId>sonar-plugin-api</artifactId> <version>5.6</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> <artifactId>sonar-packaging-maven-plugin</artifactId> <version>1.16</version> <extensions>true</extensions> <configuration> <!-- Override the default value 5.6 which is guessed from sonar-plugin-api dependency --> <sonarQubeMinVersion>5.5</sonarQubeMinVersion> </configuration> </plugin> </plugins> </build>
public SonarQubeVersion(Version version)
public boolean isGreaterThanOrEqual(Version than)
Copyright © 2009–2016 SonarSource. All rights reserved.