diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2014-10-06 10:13:12 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2014-10-06 10:13:12 +0200 |
commit | 3e4cb28c2f482caf3fad21092d4acf7609a702c6 (patch) | |
tree | a093fbe2d68c6a91266b84f968ccef4dcf2f48e9 /sonar-plugin-api | |
parent | 46d6957730741f64a75b0b9404395bd5bc5d4cd4 (diff) | |
parent | 40ef7ce47f9400d88d351db0bf7e6c8dd7abba68 (diff) | |
download | sonarqube-3e4cb28c2f482caf3fad21092d4acf7609a702c6.tar.gz sonarqube-3e4cb28c2f482caf3fad21092d4acf7609a702c6.zip |
Merge remote-tracking branch 'remotes/origin/branch-4.5'
Conflicts:
sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java
Diffstat (limited to 'sonar-plugin-api')
20 files changed, 112 insertions, 64 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java index 5d13d0ac7da..be4b1e0cd70 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java @@ -108,14 +108,18 @@ public interface DecoratorContext { * @param violationQuery * the request parameters specified as a {@link ViolationQuery} * @return the list of violations that match those parameters + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated List<Violation> getViolations(ViolationQuery violationQuery); /** * Returns all the active (= non switched-off) violations found on the current resource. * * @return the list of violations + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated List<Violation> getViolations(); /** @@ -123,12 +127,16 @@ public interface DecoratorContext { * * @since 2.5 * @param force allows to force creation of violation even if it was suppressed by {@link org.sonar.api.rules.ViolationFilter} + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated DecoratorContext saveViolation(Violation violation, boolean force); /** * Save a coding rule violation. The decorator which calls this method must be depended upon BatchBarriers.END_OF_VIOLATIONS_GENERATION. + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated DecoratorContext saveViolation(Violation violation); // EVENTS diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java index 7a82bc24015..fc055e6da5c 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java @@ -40,9 +40,7 @@ import org.sonar.api.resources.Project; * </p> * * @since 1.10 - * @deprecated since 4.5 use {@link org.sonar.api.batch.sensor.Sensor} */ -@Deprecated public interface Sensor extends BatchExtension, CheckProject { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java index 4ad0c7999df..c76eaf47138 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java @@ -19,6 +19,7 @@ */ package org.sonar.api.batch; +import com.google.common.annotations.Beta; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.design.Dependency; import org.sonar.api.measures.Measure; @@ -38,9 +39,7 @@ import java.util.Set; /** * @since 1.10 - * @deprecated since 4.5 */ -@Deprecated public interface SensorContext { /** @@ -170,23 +169,30 @@ public interface SensorContext { * * @param force allows to force creation of violation even if it was supressed by {@link org.sonar.api.rules.ViolationFilter} * @since 2.5 - * @deprecated since 5.0 but force parameter was ignored for a long time anyway + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ @Deprecated void saveViolation(Violation violation, boolean force); /** * Save a coding rule violation. + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated void saveViolation(Violation violation); /** * Saves a list of violations. + * @deprecated in 3.6, replaced by {@link org.sonar.api.issue.Issuable} */ + @Deprecated void saveViolations(Collection<Violation> violations); // ----------- DEPENDENCIES BETWEEN RESOURCES -------------- + /** + * Build a new dependency : from depends upon to. The dependency is NOT saved. The method saveDependency() must still be executed. + */ Dependency saveDependency(Dependency dependency); Set<Dependency> getDependencies(); @@ -246,14 +252,16 @@ public interface SensorContext { void deleteEvent(Event event); /** - * Experimental + * Experimental - do not use * @since 4.2 */ + @Beta Measure saveMeasure(InputFile inputFile, Metric metric, Double value); /** - * Experimental + * Experimental - do not use * @since 4.2 */ + @Beta Measure saveMeasure(InputFile inputFile, Measure measure); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java index 87b75459373..0e590c84593 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java @@ -33,9 +33,7 @@ import org.sonar.api.resources.Project; * </p> * * @since 1.10 - * @deprecated since 4.5 we don't want any dependency on Maven anymore */ -@Deprecated @SupportedEnvironment("maven") public interface DependsUponMavenPlugin extends BatchExtension { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/Metric.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/Metric.java index e5e4f98953b..95e3828abb9 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/Metric.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/Metric.java @@ -24,7 +24,7 @@ import com.google.common.annotations.Beta; import java.io.Serializable; /** - * Metric definition. + * Experimental - do not use * @since 4.4 */ @Beta diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java index 4f91ea5aae4..79967526386 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java @@ -19,6 +19,7 @@ */ package org.sonar.api.batch.measure; +import com.google.common.annotations.Beta; import org.sonar.api.BatchComponent; import javax.annotation.CheckForNull; @@ -27,8 +28,10 @@ import java.util.Collection; import java.util.List; /** + * Experimental - do not use * @since 4.5 */ +@Beta public interface MetricFinder extends BatchComponent { @CheckForNull diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java index 20a2fb19a4e..e717c35d83a 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java @@ -57,9 +57,7 @@ public interface ActiveRules extends BatchComponent { /** * The active rules for a given language, like <code>java</code> - * @deprecated since 4.5 Not sure rules will continue to be linked to a language */ - @Deprecated Collection<ActiveRule> findByLanguage(String language); /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java index 76cab2f4790..0e877c8bfc7 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java @@ -19,26 +19,32 @@ */ package org.sonar.api.batch.sensor; +import com.google.common.annotations.Beta; import org.sonar.api.batch.fs.FileSystem; import org.sonar.api.batch.fs.InputFile; +import org.sonar.api.batch.measure.Metric; import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.batch.sensor.duplication.DuplicationBuilder; import org.sonar.api.batch.sensor.duplication.DuplicationGroup; import org.sonar.api.batch.sensor.duplication.DuplicationTokenBuilder; import org.sonar.api.batch.sensor.highlighting.HighlightingBuilder; import org.sonar.api.batch.sensor.issue.Issue; +import org.sonar.api.batch.sensor.issue.IssueBuilder; import org.sonar.api.batch.sensor.measure.Measure; +import org.sonar.api.batch.sensor.measure.MeasureBuilder; import org.sonar.api.batch.sensor.symbol.SymbolTableBuilder; -import org.sonar.api.batch.sensor.test.TestCase; import org.sonar.api.config.Settings; +import javax.annotation.CheckForNull; + import java.io.Serializable; import java.util.List; /** - * See {@link Sensor#execute(SensorContext)} - * @since 5.0 + * Experimental - do not use + * @since 4.4 */ +@Beta public interface SensorContext { /** @@ -59,16 +65,56 @@ public interface SensorContext { // ----------- MEASURES -------------- /** - * Fluent builder to create a new {@link Measure}. Don't forget to call {@link Measure#save()} once all parameters are provided. + * Builder to create a new {@link Measure}. + */ + <G extends Serializable> MeasureBuilder<G> measureBuilder(); + + /** + * Find a project measure. + */ + @CheckForNull + Measure getMeasure(String metricKey); + + /** + * Find a project measure. + */ + @CheckForNull + <G extends Serializable> Measure<G> getMeasure(Metric<G> metric); + + /** + * Find a file measure. + */ + @CheckForNull + Measure getMeasure(InputFile file, String metricKey); + + /** + * Find a file measure. + */ + @CheckForNull + <G extends Serializable> Measure<G> getMeasure(InputFile file, Metric<G> metric); + + /** + * Add a measure. Use {@link #measureBuilder()} to create the new measure. + * A measure for a given metric can only be saved once for the same resource. */ - <G extends Serializable> Measure<G> newMeasure(); + void addMeasure(Measure<?> measure); // ----------- ISSUES -------------- /** - * Fluent builder to create a new {@link Issue}. Don't forget to call {@link Issue#save()} once all parameters are provided. + * Builder to create a new {@link Issue}. */ - Issue newIssue(); + IssueBuilder issueBuilder(); + + /** + * Add an issue. Use {@link #issueBuilder()} to create the new issue. + * @return <code>true</code> if the new issue is registered, <code>false</code> if: + * <ul> + * <li>the rule does not exist</li> + * <li>the rule is disabled in the Quality profile</li> + * </ul> + */ + boolean addIssue(Issue issue); // ------------ HIGHLIGHTING ------------ @@ -104,36 +150,7 @@ public interface SensorContext { /** * Register all duplications of an {@link InputFile}. Use {@link #duplicationBuilder(InputFile)} to create * list of duplications. - * @since 4.5 */ void saveDuplications(InputFile inputFile, List<DuplicationGroup> duplications); - // ------------ TESTS ------------ - - /** - * Create a new test case for the given test file. - * Don't forget to call {@link TestCase#save()} once all parameters are provided. - * @since 5.0 - */ - TestCase newTestCase(); - - /** - * Register coverage of a given test case on another main file. TestCase should have been registered using {@link #testPlanBuilder(InputFile)} - * @param testFile test file containing the test case - * @param testCaseName name of the test case - * @param coveredFile main file that is covered - * @param coveredLines list of covered lines - * @since 5.0 - */ - void saveCoveragePerTest(TestCase testCase, InputFile coveredFile, List<Integer> coveredLines); - - // ------------ DEPENDENCIES ------------ - - /** - * Declare a dependency between 2 files. - * @param weight Weight of the dependency - * @since 5.0 - */ - void saveDependency(InputFile from, InputFile to, int weight); - } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationBuilder.java index aa27ff41b28..691fff2dc45 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationBuilder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationBuilder.java @@ -19,11 +19,14 @@ */ package org.sonar.api.batch.sensor.duplication; +import com.google.common.annotations.Beta; import org.sonar.api.batch.fs.InputFile; import java.util.List; /** + * Experimental, do not use. + * <p/> * This builder is used to declare duplications on files of the project. * Usage: * <code><pre> @@ -38,6 +41,7 @@ import java.util.List; * </pre></code> * @since 4.5 */ +@Beta public interface DuplicationBuilder { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java index 5d3d833a906..82f866deea5 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java @@ -19,6 +19,7 @@ */ package org.sonar.api.batch.sensor.duplication; +import com.google.common.annotations.Beta; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; @@ -29,12 +30,15 @@ import java.util.ArrayList; import java.util.List; /** + * Experimental, do not use. + * <p/> * A {@link DuplicationGroup} is a list of duplicated {@link Block}s. One block * is considered as the original code and all others are duplicates. * Use {@link SensorContext#duplicationBuilder(org.sonar.api.batch.fs.InputFile)} and * {@link SensorContext#saveDuplications(org.sonar.api.batch.fs.InputFile, List)}. * @since 4.5 */ +@Beta public class DuplicationGroup { public static class Block { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationTokenBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationTokenBuilder.java index 6dfd437c552..d43c5d216fd 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationTokenBuilder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationTokenBuilder.java @@ -20,7 +20,11 @@ package org.sonar.api.batch.sensor.duplication; +import com.google.common.annotations.Beta; + /** + * Experimental, do not use. + * <p/> * This builder is used to define token on files. Tokens are later used to compute duplication. * Tokens should be declared in sequential order. * Example: @@ -35,6 +39,7 @@ package org.sonar.api.batch.sensor.duplication; * </pre></code> * @since 4.5 */ +@Beta public interface DuplicationTokenBuilder { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java index d969ba49a03..aef7d5393a7 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java @@ -19,10 +19,15 @@ */ package org.sonar.api.batch.sensor.highlighting; +import com.google.common.annotations.Beta; + /** + * Experimental, do not use. + * <p/> * This builder is used to define syntax highlighting (aka code coloration) on files. * @since 4.5 */ +@Beta public interface HighlightingBuilder { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java index ae427944052..16064019c91 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java @@ -19,11 +19,15 @@ */ package org.sonar.api.batch.sensor.highlighting; +import com.google.common.annotations.Beta; + /** - * Possible types for highlighting code. - * See sonar-colorizer.css + * Experimental, do not use. + * <p/> + * Possible types for highlighting code. See sonar-colorizer.css * @since 4.5 */ +@Beta public enum TypeOfText { ANNOTATION("a"), CONSTANT("c"), diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/Symbol.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/Symbol.java index 9e1e3e8259e..72f0bf92980 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/Symbol.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/Symbol.java @@ -20,10 +20,13 @@ package org.sonar.api.batch.sensor.symbol; +import com.google.common.annotations.Beta; + /** - * Represent a symbol in a source file. + * Represent a symbol in a source file. Experimental, do not use * @since 4.5 */ +@Beta public interface Symbol { int getDeclarationStartOffset(); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/SymbolTableBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/SymbolTableBuilder.java index 3be82175d42..e9ebd8c72fc 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/SymbolTableBuilder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/symbol/SymbolTableBuilder.java @@ -19,11 +19,16 @@ */ package org.sonar.api.batch.sensor.symbol; +import com.google.common.annotations.Beta; + /** + * Experimental, do not use. + * <p/> * Use this builder to create symbol references. For now only references * in the same file are supported. * @since 4.5 */ +@Beta public interface SymbolTableBuilder { /** diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java index 5d9aefd6013..c6f68aaedce 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java @@ -29,9 +29,7 @@ import java.util.List; /** * @since 2.5 - * @deprecated since 4.5 use {@link org.sonar.api.batch.measure.MetricFinder} on batch side */ -@Deprecated public interface MetricFinder extends TaskComponent, ServerComponent { @CheckForNull diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/source/Highlightable.java b/sonar-plugin-api/src/main/java/org/sonar/api/source/Highlightable.java index 6d5bd6bd14d..0ab229be03c 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/source/Highlightable.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/source/Highlightable.java @@ -19,14 +19,11 @@ */ package org.sonar.api.source; -import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.component.Perspective; /** * @since 3.6 - * @deprecated since 4.5 use {@link SensorContext#highlightingBuilder(org.sonar.api.batch.fs.InputFile)} */ -@Deprecated public interface Highlightable extends Perspective { interface HighlightingBuilder { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbol.java b/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbol.java index 31702ecb065..9aa8ae26900 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbol.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbol.java @@ -20,10 +20,6 @@ package org.sonar.api.source; -/** - * @deprecated since 4.5 replaced by {@link org.sonar.api.batch.sensor.symbol.Symbol} - */ -@Deprecated public interface Symbol extends org.sonar.api.batch.sensor.symbol.Symbol { @Override diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbolizable.java b/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbolizable.java index 0b7f765cfe7..3a49ada34df 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbolizable.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/source/Symbolizable.java @@ -19,16 +19,13 @@ */ package org.sonar.api.source; -import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.component.Perspective; import java.util.List; /** * @since 3.6 - * @deprecated since 4.5 use {@link SensorContext#symbolTableBuilder(org.sonar.api.batch.fs.InputFile)} */ -@Deprecated public interface Symbolizable extends Perspective { interface SymbolTableBuilder { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/NavigationSection.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/NavigationSection.java index 9786e2fb6f5..19b43b0bc40 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/web/NavigationSection.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/NavigationSection.java @@ -37,7 +37,7 @@ public @interface NavigationSection { String RESOURCE = "resource"; /** - * @deprecated since 4.5, as it costs too much to maintain and update. + * @deprecated in 4.5, as it costs too much to maintain and update. * @see <a href="https://jira.codehaus.org/browse/SONAR-5321">SONAR-5321</a> */ @Deprecated |