diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2016-04-11 10:57:05 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2016-04-11 10:57:50 +0200 |
commit | 50e2bb1db1b097cac4fb73b4aa211a37ba2184b5 (patch) | |
tree | ad58a49eca1f00585dc2e15ae53b9ad23fddc50e /sonar-plugin-api/src/main/java/org | |
parent | a5338f2a09043c24f2cae4fc50ac4fc82891eaaf (diff) | |
download | sonarqube-50e2bb1db1b097cac4fb73b4aa211a37ba2184b5.tar.gz sonarqube-50e2bb1db1b097cac4fb73b4aa211a37ba2184b5.zip |
Change return type of Plugin#getSonarQubeVersion()
and improve Javadoc
Diffstat (limited to 'sonar-plugin-api/src/main/java/org')
-rw-r--r-- | sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java b/sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java index bf097a28939..3fa26caa9ee 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java @@ -23,6 +23,7 @@ import com.google.common.annotations.Beta; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.sonar.api.utils.Version; import static java.util.Arrays.asList; import static java.util.Objects.requireNonNull; @@ -31,11 +32,11 @@ import static java.util.Objects.requireNonNull; * Entry-point for plugins to inject extensions into SonarQube. * <p>The JAR manifest must declare the name of the implementation class in the property <code>Plugin-Class</code>. * This property is automatically set by sonar-packaging-maven-plugin when building plugin.</p> - * <p>Example of implementation: + * <p>Example of implementation</p> * <pre> * package com.mycompany.sonarqube; * public class MyPlugin implements Plugin { - * {@literal @}Override + * {@literal @}Override * public void define(Context context) { * context.addExtensions(MySensor.class, MyRules.class); * if (context.getSonarQubeVersion().isGreaterThanOrEqual(SonarQubeVersion.V5_6)) { @@ -46,8 +47,8 @@ import static java.util.Objects.requireNonNull; * } * } * </pre> - * </p> - * <p>Example of pom.xml:</p> + * + * <p>Example of pom.xml</p> * <pre> * <project> * ... @@ -68,20 +69,35 @@ import static java.util.Objects.requireNonNull; * </project> * </pre> * + * <p>Example of test</p> + * <pre> + * MyPlugin underTest = new MyPlugin(); + * + *{@literal @}Test + * public void test_plugin_extensions_compatible_with_5_5() { + * Plugin.Context context = new Plugin.Context(SonarQubeVersion.V5_5); + * underTest.define(context); + * assertThat(context.getExtensions()).hasSize(4); + * } + * </pre> + * * @since 5.5 */ @Beta public interface Plugin { class Context { - private final SonarQubeVersion version; + private final Version version; private final List extensions = new ArrayList(); - public Context(SonarQubeVersion version) { + public Context(Version version) { this.version = version; } - public SonarQubeVersion getSonarQubeVersion() { + /** + * Runtime version of SonarQube + */ + public Version getSonarQubeVersion() { return version; } @@ -89,10 +105,10 @@ public interface Plugin { * Add an extension as : * <ul> * <li>a Class that is annotated with {@link org.sonar.api.batch.BatchSide}, {@link org.sonar.api.server.ServerSide} - * or {@link org.sonar.api.server.ComputeEngineSide}.</li> - * The extension will be instantiated once. Its dependencies are injected through constructor parameters.</li> + * or {@link org.sonar.api.ce.ComputeEngineSide}. The extension will be instantiated once. Its dependencies are + * injected through constructor parameters.</li> * <li>an instance that is annotated with {@link org.sonar.api.batch.BatchSide}, {@link org.sonar.api.server.ServerSide} - * or {@link org.sonar.api.server.ComputeEngineSide}.</li> + * or {@link org.sonar.api.ce.ComputeEngineSide}.</li> * </ul> * Only a single component can be registered for a class. It's not allowed for example to register: * <ul> |