aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src/main/java
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2016-04-11 12:34:03 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2016-04-11 12:34:03 +0200
commite84422a61a85a643d534f9a50b60a176192b31b8 (patch)
treee6304fb32be6a54dd70e1f18b4bac6f92c7b8d1f /sonar-plugin-api/src/main/java
parent48696399ff2adc8cdb5d914047f0404c9b78783f (diff)
downloadsonarqube-e84422a61a85a643d534f9a50b60a176192b31b8.tar.gz
sonarqube-e84422a61a85a643d534f9a50b60a176192b31b8.zip
Fix javadoc errors
Diffstat (limited to 'sonar-plugin-api/src/main/java')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ExtensionProvider.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/Properties.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/Property.java16
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/SonarPlugin.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/Initializer.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java20
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputDir.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputFile.java23
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java30
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/postjob/PostJob.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Checks.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/Sensor.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewIssueLocation.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/MeasureComputer.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/RangeDistributionBuilder.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/CeTask.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/PostProjectAnalysisTask.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/QualityGate.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java32
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java15
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java16
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java11
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java20
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContext.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java16
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/notifications/Notification.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/notifications/NotificationChannel.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/InputFile.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceType.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/Scopes.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleFinder.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileExclusions.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/ModuleFileSystem.java13
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/Display.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/debt/DebtRemediationFunction.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java18
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionI18nLoader.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/ws/LocalConnector.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java10
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/user/RubyUserService.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/Duration.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java13
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/KeyValueFormat.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/MessageException.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeUtils.java10
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/Version.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/WildcardPattern.java9
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/internal/JUnitTempFolder.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/log/ConsoleLogger.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/log/LogTester.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/log/Logger.java36
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/text/JsonWriter.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/AbstractRubyTemplate.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/Criterion.java10
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/Dashboard.java12
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/Filter.java10
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/FilterColumn.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/PageDecoration.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/RequiredMeasures.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/RubyRailsWidget.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/web/WidgetScope.java2
83 files changed, 296 insertions, 296 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ExtensionProvider.java b/sonar-plugin-api/src/main/java/org/sonar/api/ExtensionProvider.java
index 84d0c63fed7..10420246786 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ExtensionProvider.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ExtensionProvider.java
@@ -31,10 +31,11 @@ package org.sonar.api;
* <li>the method provide() is executed once by sonar</li>
* <li>the method provide() must return an object, a class or an Iterable of objects. <strong>Arrays are excluded</strong>.</li>
* </ul>
- * </p>
+ *
*
* <p>Example:
* <pre>
+ * {@code
* public class RuleRepositoryProvider extends ExtensionProvider implements ServerExtension {
* private Language[] languages;
*
@@ -50,8 +51,9 @@ package org.sonar.api;
* return result;
* }
* }
+ * }
* </pre>
- * </p>
+ *
*
* @since 2.3
*/
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 3fa26caa9ee..659f5c6e948 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
@@ -31,8 +31,8 @@ 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>
+ * This property is automatically set by sonar-packaging-maven-plugin when building plugin.
+ * <p>Example of implementation
* <pre>
* package com.mycompany.sonarqube;
* public class MyPlugin implements Plugin {
@@ -48,7 +48,7 @@ import static java.util.Objects.requireNonNull;
* }
* </pre>
*
- * <p>Example of pom.xml</p>
+ * <p>Example of pom.xml
* <pre>
* &lt;project&gt;
* ...
@@ -69,7 +69,7 @@ import static java.util.Objects.requireNonNull;
* &lt;/project&gt;
* </pre>
*
- * <p>Example of test</p>
+ * <p>Example of test
* <pre>
* MyPlugin underTest = new MyPlugin();
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/Properties.java b/sonar-plugin-api/src/main/java/org/sonar/api/Properties.java
index c680a7d0b03..7009ea8414e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/Properties.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/Properties.java
@@ -24,10 +24,10 @@ import java.lang.annotation.RetentionPolicy;
/**
* Plugin properties. This annotation is only used on classes implementing org.sonar.api.Plugin.
- * <p/>
+ * <br>
* Note that {@link org.sonar.api.config.PropertyDefinition} is an alternative, programmatic and recommended approach
* to declare properties.
- * <p/>
+ * <br>
* Effective property values are accessible at runtime through the component {@link org.sonar.api.config.Settings}
*
* @since 1.10
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/Property.java b/sonar-plugin-api/src/main/java/org/sonar/api/Property.java
index 56301a6fca4..8ac6e648c4e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/Property.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/Property.java
@@ -29,7 +29,7 @@ import java.lang.annotation.Target;
* <ul>
* <li>System property</li>
* <li>Batch command-line (-Dfoo=bar in Maven or sonar-runner)</li>
- * <li>Maven pom.xml (element <properties>)</li>
+ * <li>Maven pom.xml (element {@literal <properties>})</li>
* <li>Maven settings.xml</li>
* <li>SonarQube web administration console</li>
* </ul>
@@ -84,15 +84,15 @@ public @interface Property {
/**
* Options for *_LIST types
*
- * @since 3.0 Options for property of type PropertyType.SINGLE_SELECT_LIST</code>
+ * @since 3.0 Options for property of type {@link PropertyType#SINGLE_SELECT_LIST}
* For example {"property_1", "property_3", "property_3"}).
*
- * @since 3.3 Options for property of type PropertyType.METRIC</code>.
- * If no option is specified, any metric will match.
- * If options are specified, all must match for the metric to be displayed.
- * Three types of filter are supported <code>key:REGEXP</code>, <code>domain:REGEXP</code> and <code>type:comma_separated__list_of_types</code>.
- * For example <code>key:new_.*</code> will match any metric which key starts by <code>new_</code>.
- * For example <code>type:INT,FLOAT</code> will match any metric of type <code>INT</code> or <code>FLOAT</code>.
+ * @since 3.3 Options for property of type {@link PropertyType#METRIC}<br>
+ * If no option is specified, any metric will match.<br>
+ * If options are specified, all must match for the metric to be displayed.<br>
+ * Three types of filter are supported <code>key:REGEXP</code>, <code>domain:REGEXP</code> and <code>type:comma_separated__list_of_types</code>.<br>
+ * For example <code>key:new_.*</code> will match any metric which key starts by <code>new_</code>.<br>
+ * For example <code>type:INT,FLOAT</code> will match any metric of type <code>INT</code> or <code>FLOAT</code>.<br>
* For example <code>type:NUMERIC</code> will match any metric of numerictype.
*/
String[] options() default {};
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/SonarPlugin.java b/sonar-plugin-api/src/main/java/org/sonar/api/SonarPlugin.java
index d9d45225532..a44838b745d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/SonarPlugin.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/SonarPlugin.java
@@ -23,9 +23,9 @@ import java.util.List;
/**
* Plugin entry-point used to declare its extensions (see {@link org.sonar.api.Extension}.
- * <p/>
+ * <br>
* <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>
+ * This property is automatically set by sonar-packaging-maven-plugin when building plugin.
*
* @since 2.8
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java b/sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java
index 5387d3ef765..7c55e533ba2 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java
@@ -81,12 +81,12 @@ import static java.util.Objects.requireNonNull;
* }
* }
* </pre>
- * <p></p>
+ * <p>
* 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+:
- * <p></p>
+ * <p>
* <pre>
* &lt;packaging&gt;sonar-plugin&lt;/packaging&gt;
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java
index ee363543008..e5c2f75b5be 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java
@@ -35,12 +35,10 @@ import org.sonar.api.resources.Resource;
@Deprecated
public abstract class AbstractSumChildrenDecorator implements Decorator {
-
/**
* Each metric is used individually. There are as many generated measures than metrics.
- * <p/>
* <p><b>Important</b> : annotations are not inherited, so you have to copy the @DependedUpon annotation
- * when implementing this method.</p>
+ * when implementing this method.
*
* @return not null list of metrics
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java
index 71a0071c1f3..d6f3f10f26e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java
@@ -21,7 +21,7 @@ package org.sonar.api.batch;
/**
* Barriers are used to define the order of execution of Decorators. Decorators must be annotated with the following :
- * <p/>
+ * <br>
* <ul>
* <li>{@code @DependsUpon(BARRIER)} in order to be executed after BARRIER</li>
* <li>{@code @DependedUpon(BARRIER)} in order to be executed before BARRIER</li>
@@ -70,7 +70,7 @@ public interface DecoratorBarriers {
/**
* Extensions which call the method {@code Violation#setSwitchedOff} must be executed before this barrier
* ({@code @DependedUpon(value=DecoratorBarriers.VIOLATION_TRACKING})
- * <p/>
+ * <br>
* This barrier is after {@code END_OF_VIOLATIONS_GENERATION}
*
* @since 2.8
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/Initializer.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/Initializer.java
index 4f1c026cda1..a9bfa828390 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/Initializer.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/Initializer.java
@@ -26,11 +26,11 @@ import org.sonar.api.resources.Project;
* <p>
* Initializer can execute external tool (like a Maven plugin), change project configuration. For example CoberturaMavenInitializer invokes
* the Codehaus Cobertura Mojo and sets path to Cobertura report according to Maven POM.
- * </p>
+ *
*
* <p>
* Initializers are executed first and once during project analysis.
- * </p>
+ *
*
* @since 2.6
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java
index a10e2154f70..6ba8298c70e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java
@@ -24,7 +24,7 @@ import org.sonar.api.resources.Project;
/**
* PostJobs are executed at the very end of batch analysis. A PostJob can't do any modification
- * since everything is already computed (issues, measures,...). <br/>
+ * since everything is already computed (issues, measures,...). <br>
* WANRING: Do not rely on the fact that analysis results are available on server side. Starting from 5.x
* it is an asynchronous processing on server side.
*
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 9e1f7c3b53c..72cb369f3d3 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
@@ -27,17 +27,17 @@ import org.sonar.api.resources.Project;
* A Sensor is invoked once during the analysis of a project. The sensor can parse a flat file, connect to a web server... Sensor are
* generally used to add measure at the lowest level of the resource tree. A sensor can access and save measures on the whole tree of
* resources.
- * </p>
+ *
*
* <p>
* For example the Cobertura Sensor parses Cobertura report and saves the first-level of measures on resources.
- * </p>
+ *
*
* <p>
* A particular attention should be given to resource exclusion. Sonar already manages exclusions at file level : if you try to save a
* measure on a resource that is excluded in the settings, then Sonar will not save the measure. When handling a plugin or an external tool,
* you should make sure that exclusions are passed if you are going to get back consolidated data.
- * </p>
+ *
*
* @since 1.10
*/
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 57818e43177..d9573c82deb 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
@@ -146,7 +146,7 @@ public interface SensorContext extends org.sonar.api.batch.sensor.SensorContext
* <p>
* The resource is automatically saved, so there is no need to execute the method saveResource(). Does nothing if the resource is set as
* excluded.
- * </p>
+ *
*/
Measure saveMeasure(Resource resource, Metric metric, Double value);
@@ -155,7 +155,7 @@ public interface SensorContext extends org.sonar.api.batch.sensor.SensorContext
* <p>
* The resource is automatically saved, so there is no need to execute the method saveResource(). Does nothing if the resource is set as
* excluded.
- * </p>
+ *
*/
Measure saveMeasure(Resource resource, Measure measure);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java
index 44ed65d2ac0..33b22cb4402 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java
@@ -42,7 +42,7 @@ public interface FilePredicates {
* Predicate that gets a file by its absolute path. The parameter
* accepts forward/back slashes as separator and non-normalized values
* (<code>/path/to/../foo.txt</code> is same as <code>/path/foo.txt</code>).
- * <p/>
+ * <p>
* Warning - not efficient because absolute path is not indexed yet.
*/
FilePredicate hasAbsolutePath(String s);
@@ -57,12 +57,12 @@ public interface FilePredicates {
/**
* Predicate that gets the files which relative or absolute path matches a wildcard pattern.
- * <p/>
+ * <br>
* If the parameter starts with <code>file:</code>, then absolute path is used, else relative path. Pattern
* is case-sensitive, except for file extension.
- * <p/>
+ * <br>
* Supported wildcards are <code>&#42;</code> and <code>&#42;&#42;</code>, but not <code>?</code>.
- * <p/>
+ * <br>
* Examples:
* <ul>
* <li><code>&#42;&#42;/&#42;Foo.java</code> matches Foo.java, src/Foo.java and src/java/SuperFoo.java</li>
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
index 1e6a46c21ee..18733a2c01f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
@@ -19,17 +19,15 @@
*/
package org.sonar.api.batch.fs;
-import org.sonar.api.batch.BatchSide;
-
-import javax.annotation.CheckForNull;
-
import java.io.File;
import java.nio.charset.Charset;
import java.util.SortedSet;
+import javax.annotation.CheckForNull;
+import org.sonar.api.batch.BatchSide;
/**
* The {@link FileSystem} manages all the source files to be analyzed.
- * <p/>
+ * <p>
* This is not an extension point so it must not be implemented by plugins. It must be injected as a
* constructor parameter :
* <pre>
@@ -70,7 +68,7 @@ public interface FileSystem {
/**
* Absolute work directory. It can be used to
* store third-party analysis reports.
- * <p/>
+ * <br>
* The work directory can be located outside {@link #baseDir()}.
*/
File workDir();
@@ -85,7 +83,7 @@ public interface FileSystem {
* the predicate, then {@link IllegalArgumentException} is thrown. Returns {@code null}
* if no files match.
*
- * <p/>
+ * <p>
* How to use :
* <pre>
* InputFile file = fs.inputFile(fs.predicates().hasRelativePath("src/Foo.php"));
@@ -99,7 +97,7 @@ public interface FileSystem {
/**
* Returns {@link InputDir} matching the current {@link File}.
* @return null if directory is not indexed.
- * @throw {@link IllegalArgumentException} is File is null or not a directory.
+ * @throws IllegalArgumentException is File is null or not a directory.
*
* @since 4.5
*/
@@ -109,15 +107,17 @@ public interface FileSystem {
/**
* Input files matching the given attributes. Return all the files if the parameter
* <code>attributes</code> is empty.
- * <p/>
+ * <p>
* <b>Important</b> - result is an {@link java.lang.Iterable} to benefit from streaming and decreasing
* memory consumption. It should be iterated only once, else copy it into a list :
* {@code com.google.common.collect.Lists.newArrayList(inputFiles(predicate))}
- * <p/>
+ * <p>
* How to use :
* <pre>
+ * {@code
* FilePredicates p = fs.predicates();
* Iterable<InputFile> files = fs.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN)));
+ * }
* </pre>
*
* @see #predicates()
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputDir.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputDir.java
index e1fb47622ba..9237df36547 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputDir.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputDir.java
@@ -33,11 +33,11 @@ public interface InputDir extends InputPath {
* Path relative to module base directory. Path is unique and identifies directory
* within given <code>{@link FileSystem}</code>. File separator is the forward
* slash ('/'), even on Microsoft Windows.
- * <p/>
+ * <br>
* Returns <code>src/main/java/com</code> if module base dir is
* <code>/path/to/module</code> and if directory is
* <code>/path/to/module/src/main/java/com</code>.
- * <p/>
+ * <br>
* Relative path is not null and is normalized ('foo/../foo' is replaced by 'foo').
*/
@Override
@@ -45,7 +45,7 @@ public interface InputDir extends InputPath {
/**
* Normalized absolute path. File separator is forward slash ('/'), even on Microsoft Windows.
- * <p/>
+ * <br>
* This is not canonical path. Symbolic links are not resolved. For example if /project/src links
* to /tmp/src and basedir is /project, then this method returns /project/src. Use
* {@code file().getCanonicalPath()} to resolve symbolic link.
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputFile.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputFile.java
index 9e30d3fa81a..95239e2a2e9 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputFile.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/InputFile.java
@@ -54,11 +54,11 @@ public interface InputFile extends InputPath {
* Path relative to module base directory. Path is unique and identifies file
* within given <code>{@link FileSystem}</code>. File separator is the forward
* slash ('/'), even on Microsoft Windows.
- * <p/>
+ * <br>
* Returns <code>src/main/java/com/Foo.java</code> if module base dir is
* <code>/path/to/module</code> and if file is
* <code>/path/to/module/src/main/java/com/Foo.java</code>.
- * <p/>
+ * <br>
* Relative path is not null and is normalized ('foo/../foo' is replaced by 'foo').
*/
@Override
@@ -66,7 +66,7 @@ public interface InputFile extends InputPath {
/**
* Normalized absolute path. File separator is forward slash ('/'), even on Microsoft Windows.
- * <p/>
+ * <br>
* This is not canonical path. Symbolic links are not resolved. For example if /project/src links
* to /tmp/src and basedir is /project, then this method returns /project/src/index.php. Use
* {@code file().getCanonicalPath()} to resolve symbolic link.
@@ -103,8 +103,13 @@ public interface InputFile extends InputPath {
Status status();
/**
- * Number of physical lines. This method supports all end-of-line characters. Formula is (number of line break + 1). Returns
- * 1 if the file is empty.</br> Returns 2 for <tt>foo\nbar</tt>. Returns 3 for <tt>foo\nbar\n</tt>.
+ * Number of physical lines. This method supports all end-of-line characters. Formula is (number of line break + 1).
+ * <p>
+ * Returns 1 if the file is empty.
+ * <br>
+ * Returns 2 for <tt>foo\nbar</tt>.
+ * <br>
+ * Returns 3 for <tt>foo\nbar\n</tt>.
*/
int lines();
@@ -118,7 +123,7 @@ public interface InputFile extends InputPath {
* Returns a {@link TextPointer} in the given file.
* @param line Line of the pointer. Start at 1.
* @param lineOffset Offset in the line. Start at 0.
- * @throw {@link IllegalArgumentException} if line or offset is not valid for the given file.
+ * @throws IllegalArgumentException if line or offset is not valid for the given file.
* @since 5.2
*/
TextPointer newPointer(int line, int lineOffset);
@@ -127,7 +132,7 @@ public interface InputFile extends InputPath {
* Returns a {@link TextRange} in the given file.
* @param start start pointer
* @param end end pointer
- * @throw {@link IllegalArgumentException} if start or stop pointers are not valid for the given file.
+ * @throws IllegalArgumentException if start or stop pointers are not valid for the given file.
* @since 5.2
*/
TextRange newRange(TextPointer start, TextPointer end);
@@ -138,7 +143,7 @@ public interface InputFile extends InputPath {
* <li><code>newRange(1, 0, 1, 1)</code> selects the first character at line 1</li>
* <li><code>newRange(1, 0, 1, 10)</code> selects the 10 first characters at line 1</li>
* </ul>
- * @throw {@link IllegalArgumentException} if start or stop positions are not valid for the given file.
+ * @throws IllegalArgumentException if start or stop positions are not valid for the given file.
* @since 5.2
*/
TextRange newRange(int startLine, int startLineOffset, int endLine, int endLineOffset);
@@ -146,7 +151,7 @@ public interface InputFile extends InputPath {
/**
* Returns a {@link TextRange} in the given file that select the full line.
* @param line Start at 1.
- * @throw {@link IllegalArgumentException} if line is not valid for the given file.
+ * @throws IllegalArgumentException if line is not valid for the given file.
* @since 5.2
*/
TextRange selectLine(int line);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java
index 50d6d899588..ceeadaad22b 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java
@@ -21,17 +21,6 @@ package org.sonar.api.batch.fs.internal;
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
-import org.sonar.api.batch.fs.FilePredicate;
-import org.sonar.api.batch.fs.FilePredicates;
-import org.sonar.api.batch.fs.FileSystem;
-import org.sonar.api.batch.fs.InputDir;
-import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.scan.filesystem.PathResolver;
-import org.sonar.api.utils.PathUtils;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
@@ -44,6 +33,15 @@ import java.util.Iterator;
import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+import org.sonar.api.batch.fs.FilePredicate;
+import org.sonar.api.batch.fs.FilePredicates;
+import org.sonar.api.batch.fs.FileSystem;
+import org.sonar.api.batch.fs.InputDir;
+import org.sonar.api.batch.fs.InputFile;
+import org.sonar.api.scan.filesystem.PathResolver;
+import org.sonar.api.utils.PathUtils;
/**
* @since 4.2
@@ -110,12 +108,12 @@ public class DefaultFileSystem implements FileSystem {
this.workDir = d.getAbsoluteFile().toPath().normalize();
return this;
}
-
+
public DefaultFileSystem setDefaultPredicate(@Nullable FilePredicate predicate) {
this.defaultPredicate = predicate;
return this;
}
-
+
@Override
public File workDir() {
return workDir.toFile();
@@ -146,7 +144,7 @@ public class DefaultFileSystem implements FileSystem {
throw new IllegalArgumentException(sb.toString());
}
-
+
/**
* Bypass default predicate to get all files/dirs indexed.
* Default predicate is used when some files/dirs should not be processed by sensors.
@@ -160,7 +158,7 @@ public class DefaultFileSystem implements FileSystem {
public Iterable<InputFile> inputFiles(FilePredicate predicate) {
doPreloadFiles();
FilePredicate combinedPredicate = predicate;
- if(defaultPredicate != null) {
+ if (defaultPredicate != null) {
combinedPredicate = predicates().and(defaultPredicate, predicate);
}
return OptimizedFilePredicateAdapter.create(combinedPredicate).get(cache);
@@ -224,7 +222,7 @@ public class DefaultFileSystem implements FileSystem {
/**
* Adds a language to the list. To be used only for unit tests that need to use {@link #languages()} without
- * using {@link #add(org.sonar.api.batch.fs.InputFile)}.
+ * using {@link #add(DefaultInputFile)}.
*/
public DefaultFileSystem addLanguages(String language, String... others) {
languages.add(language);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/postjob/PostJob.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/postjob/PostJob.java
index f9944774e47..25a060733b1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/postjob/PostJob.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/postjob/PostJob.java
@@ -25,7 +25,7 @@ import org.sonar.api.ExtensionPoint;
/**
* PostJobs are executed at the very end of batch analysis. A PostJob can't do any modification
- * since everything is already computed (issues, measures,...). <br/>
+ * since everything is already computed (issues, measures,...). <br>
* WANRING: Do not rely on the fact that analysis results are available on server side using WS since this is an
* asynchronous process to compute data on server side in 5.x series.
*
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 de17c5da9b5..b88131c94b2 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
@@ -29,7 +29,7 @@ import java.util.Collection;
/**
* The rules that are activated on the current module. Quality profiles are
* merged, so rules can relate to different repositories and languages.
- * <p/>
+ * <br>
* Use {@link org.sonar.api.batch.rule.internal.ActiveRulesBuilder} to instantiate
* this component in unit tests.
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Checks.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Checks.java
index c223f418a24..f34cd3bfdde 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Checks.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Checks.java
@@ -39,7 +39,7 @@ import org.sonar.check.RuleProperty;
* Instantiates checks (objects that provide implementation of coding
* rules) that use sonar-check-api annotations. Checks are selected and configured
* from the Quality profiles enabled on the current module.
- * <p/>
+ * <br>
* Example of check class:
* <pre>
* {@literal @}org.sonar.check.Rule(key = "S001")
@@ -74,7 +74,7 @@ import org.sonar.check.RuleProperty;
* }
* }
* </pre>
- * <p/>
+ * <br>
* It replaces org.sonar.api.checks.AnnotationCheckFactory
*
* @since 4.2
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/Sensor.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/Sensor.java
index a2197634ff8..1509e58fc5c 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/Sensor.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/Sensor.java
@@ -27,11 +27,11 @@ import org.sonar.api.batch.BatchSide;
* <p>
* A sensor is invoked once for each module of a project, starting from leaf modules. The sensor can parse a flat file, connect to a web server... Sensors are
* used to add measure and issues at file level.
- * </p>
+ *
*
* <p>
* For example the Cobertura Sensor parses Cobertura report and saves the first-level of measures on files.
- * </p>
+ *
*
* @since 5.1
*/
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 8e6cf7ede0a..4065eff5789 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
@@ -23,7 +23,7 @@ import com.google.common.annotations.Beta;
/**
* Experimental, do not use.
- * <p/>
+ * <br>
* Possible types for highlighting code. See sonar-colorizer.css
* @since 5.1
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewIssueLocation.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewIssueLocation.java
index e88d6ed5b71..f4fe17f13ac 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewIssueLocation.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewIssueLocation.java
@@ -50,7 +50,7 @@ public interface NewIssueLocation {
/**
* Optional, but recommended, plain-text message for this location.
- * <p/>
+ * <br>
* Formats like Markdown or HTML are not supported. Size must not be greater than {@link #MESSAGE_MAX_SIZE} characters.
*/
NewIssueLocation message(String message);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/MeasureComputer.java b/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/MeasureComputer.java
index 620bef139bc..ab3b876d79d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/MeasureComputer.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/MeasureComputer.java
@@ -23,14 +23,14 @@ import java.util.List;
import java.util.Set;
import javax.annotation.CheckForNull;
import org.sonar.api.ExtensionPoint;
-import org.sonar.api.ce.measure.MeasureComputer.MeasureComputerDefinition.Builder;
import org.sonar.api.ce.ComputeEngineSide;
+import org.sonar.api.ce.measure.MeasureComputer.MeasureComputerDefinition.Builder;
/**
* Define how to compute new measures on some metrics declared by {@link org.sonar.api.measures.Metrics}.
- * <p/>
+ * <p>
* This interface replaces the deprecated class org.sonar.api.batch.Decorator.
- * <p/>
+ * <p>
* <h3>How to use</h3>
* <pre>
* public class MyMeasureComputer implements MeasureComputer {
@@ -59,7 +59,7 @@ import org.sonar.api.ce.ComputeEngineSide;
* }
* }
* </pre>
- * <p/>
+ * <p>
* <h3>How to test</h3>
* <pre>
* public class MyMeasureComputerTest {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/RangeDistributionBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/RangeDistributionBuilder.java
index a849676ec39..1b89d1fdcbd 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/RangeDistributionBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ce/measure/RangeDistributionBuilder.java
@@ -32,9 +32,9 @@ import org.sonar.api.utils.KeyValueFormat;
/**
* Utility to build a distribution based on defined ranges
- * <p/>
+ * <p>
* <p>An example of usage : you wish to record the percentage of lines of code that belong to method
- * with pre-defined ranges of complexity.</p>
+ * with pre-defined ranges of complexity.
*
* @since 5.2
*/
@@ -86,7 +86,7 @@ public class RangeDistributionBuilder {
* Adds an existing Distribution to the current one.
* It will create the entries if they don't exist.
* Can be used to add the values of children resources for example
- * <p/>
+ * <br>
* The returned distribution will be invalidated in case the given value does not use the same bottom limits
*
* @param data the data to add to the current one
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/CeTask.java b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/CeTask.java
index 27d19b91c9e..5707c1b858a 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/CeTask.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/CeTask.java
@@ -31,7 +31,7 @@ public interface CeTask {
* <p>
* This is the id under which the processing of the project analysis report has been added to the Compute Engine
* queue.
- * </p>
+ *
*/
String getId();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/PostProjectAnalysisTask.java b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/PostProjectAnalysisTask.java
index 11344fe5778..6f0473141c9 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/PostProjectAnalysisTask.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/PostProjectAnalysisTask.java
@@ -31,11 +31,11 @@ import org.sonar.api.ce.ComputeEngineSide;
*
* <p>
* If more then one implementation of {@link PostProjectAnalysisTask} is found, they will be executed in no specific order.
- * </p>
+ *
*
* <p>
* Class {@link PostProjectAnalysisTaskTester} is provided to write unit tests of implementations of this interface.
- * </p>
+ *
*
* @since 5.5
* @see PostProjectAnalysisTaskTester
@@ -74,7 +74,7 @@ public interface PostProjectAnalysisTask {
* Date of the analysis.
* <p>
* This date is the same as the date of the project analysis report and the snapshot.
- * </p>
+ *
*/
Date getDate();
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/QualityGate.java b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/QualityGate.java
index 9e3e14abdcf..a31fb04be27 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/QualityGate.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/ce/posttask/QualityGate.java
@@ -71,7 +71,7 @@ public interface QualityGate {
* <p>
* The {@link org.sonar.api.measures.Metric} for the returned key can be retrieved using a
* {@link org.sonar.api.measures.MetricFinder} instance.
- * </p>
+ *
*
* @see org.sonar.api.batch.measure.MetricFinder#findByKey(String)
*/
@@ -85,7 +85,7 @@ public interface QualityGate {
/**
* <p>
* At least one of {@link #getErrorThreshold()} and {@link #getWarningThreshold()} is guaranteed to be non {@code null}.
- * </p>
+ *
*
* @see #getWarningThreshold()
*/
@@ -96,7 +96,7 @@ public interface QualityGate {
*
* <p>
* At least one of {@link #getErrorThreshold()} and {@link #getWarningThreshold()} is guaranteed to be non {@code null}.
- * </p>
+ *
*
* @see #getErrorThreshold()
*/
@@ -113,7 +113,7 @@ public interface QualityGate {
* <p>
* If the type of the metric (which key is provided by {@link #getMetricKey()}) is numerical, the value can be parsed
* using {@link Integer#valueOf(String)}, {@link Long#valueOf(String)} or {@link Double#valueOf(String)}.
- * </p>
+ *
*
* @throws IllegalStateException if {@link #getStatus()} is {@link EvaluationStatus#NO_VALUE}
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
index 7c753e31252..5214281c54e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
@@ -33,16 +33,16 @@ import org.sonar.api.ExtensionPoint;
import org.sonar.api.Property;
import org.sonar.api.PropertyType;
import org.sonar.api.batch.BatchSide;
-import org.sonar.api.resources.Qualifiers;
import org.sonar.api.ce.ComputeEngineSide;
+import org.sonar.api.resources.Qualifiers;
import org.sonar.api.server.ServerSide;
/**
* Declare a plugin property. Values are available at runtime through the component {@link Settings}.
- * <p/>
+ * <br>
* It's the programmatic alternative to the annotation {@link org.sonar.api.Property}. It is more
* testable and adds new features like sub-categories and ordering.
- * <p/>
+ * <br>
* Example:
* <pre><code>
* public class MyPlugin extends SonarPlugin {
@@ -54,7 +54,7 @@ import org.sonar.api.server.ServerSide;
* }
* }
* </code></pre>
- * <p/>
+ * <br>
* Keys in localization bundles are:
* <ul>
* <li>{@code property.<key>.name} is the label of the property</li>
@@ -209,11 +209,11 @@ public final class PropertyDefinition {
/**
* Options for *_LIST types
- * <p/>
- * Options for property of type PropertyType.SINGLE_SELECT_LIST</code>
+ * <br>
+ * Options for property of type {@link PropertyType#SINGLE_SELECT_LIST}.<br>
* For example {"property_1", "property_3", "property_3"}).
- * <p/>
- * Options for property of type PropertyType.METRIC</code>.
+ * <br>
+ * Options for property of type {@link PropertyType#METRIC}.<br>
* If no option is specified, any metric will match.
* If options are specified, all must match for the metric to be displayed.
* Three types of filter are supported <code>key:REGEXP</code>, <code>domain:REGEXP</code> and <code>type:comma_separated__list_of_types</code>.
@@ -381,10 +381,10 @@ public final class PropertyDefinition {
/**
* The property will be available in General Settings AND in the components
* with the given qualifiers.
- * <p/>
+ * <br>
* For example @{code onQualifiers(Qualifiers.PROJECT)} allows to configure the
* property in General Settings and in Project Settings.
- * <p/>
+ * <br>
* See supported constant values in {@link Qualifiers}. By default property is available
* only in General Settings.
*/
@@ -397,10 +397,10 @@ public final class PropertyDefinition {
/**
* The property will be available in General Settings AND in the components
* with the given qualifiers.
- * <p/>
+ * <br>
* For example @{code onQualifiers(Arrays.asList(Qualifiers.PROJECT))} allows to configure the
* property in General Settings and in Project Settings.
- * <p/>
+ * <br>
* See supported constant values in {@link Qualifiers}. By default property is available
* only in General Settings.
*/
@@ -413,10 +413,10 @@ public final class PropertyDefinition {
/**
* The property will be available in the components
* with the given qualifiers, but NOT in General Settings.
- * <p/>
+ * <br>
* For example @{code onlyOnQualifiers(Qualifiers.PROJECT)} allows to configure the
* property in Project Settings only.
- * <p/>
+ * <br>
* See supported constant values in {@link Qualifiers}. By default property is available
* only in General Settings.
*/
@@ -429,10 +429,10 @@ public final class PropertyDefinition {
/**
* The property will be available in the components
* with the given qualifiers, but NOT in General Settings.
- * <p/>
+ * <br>
* For example @{code onlyOnQualifiers(Arrays.asList(Qualifiers.PROJECT))} allows to configure the
* property in Project Settings only.
- * <p/>
+ * <br>
* See supported constant values in {@link Qualifiers}. By default property is available
* only in General Settings.
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java b/sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java
index 6f10d573020..55de869a85f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java
@@ -41,10 +41,10 @@ import org.sonar.api.utils.DateUtils;
/**
* Project settings on batch side, or global settings on server side. This component does not access to database, so
* property changed via setter methods are not persisted.
- * <p/>
+ * <br>
* <p>
* For testing, you can create a new empty {@link Settings} component using {@link #Settings()} and then
- * populate it using all variant of {@code setProperty}. <br/>
+ * populate it using all variant of {@code setProperty}. <br>
* If you want to test with default values of your properties taken into account there are two ways dependening on how you declare your properties.
* <ul>
* <li>If you are using annotations like:
@@ -82,7 +82,8 @@ import org.sonar.api.utils.DateUtils;
* </code>
* </pre>
* </li>
- * </p>
+ * </ul>
+ *
* @since 2.12
*/
@BatchSide
@@ -229,12 +230,12 @@ public class Settings {
/**
* Value is split by comma and trimmed. Never returns null.
- * <p/>
+ * <br>
* Examples :
* <ul>
- * <li>"one,two,three " -> ["one", "two", "three"]</li>
- * <li>" one, two, three " -> ["one", "two", "three"]</li>
- * <li>"one, , three" -> ["one", "", "three"]</li>
+ * <li>"one,two,three " -&gt; ["one", "two", "three"]</li>
+ * <li>" one, two, three " -&gt; ["one", "two", "three"]</li>
+ * <li>"one, , three" -&gt; ["one", "", "three"]</li>
* </ul>
*/
public String[] getStringArray(String key) {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java b/sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java
index f44233a6a9f..c696b22e201 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java
@@ -40,7 +40,7 @@ public interface I18n {
* Searches the message of the <code>key</code> for the <code>locale</code> in the list of available bundles.
* <br>
* If not found in any bundle, <code>defaultValue</code> is returned.
- * <p/>
+ * <br>
* If additional parameters are given (in the objects list), the result is used as a message pattern
* to use in a MessageFormat object along with the given parameters.
*
@@ -57,13 +57,13 @@ public interface I18n {
* <br>
* Examples :
* <ul>
- * <li>age(Locale.ENGLISH, 1000) -> less than a minute</li>
- * <li>age(Locale.ENGLISH, 60000) -> about a minute</li>
- * <li>age(Locale.ENGLISH, 120000) -> 2 minutes</li>
- * <li>age(Locale.ENGLISH, 3600000) -> about an hour</li>
- * <li>age(Locale.ENGLISH, 7200000) -> 2 hours</li>
- * <li>age(Locale.ENGLISH, 86400000) -> a day</li>
- * <li>age(Locale.ENGLISH, 172800000) -> 2 days</li>
+ * <li>age(Locale.ENGLISH, 1000) -&gt; less than a minute</li>
+ * <li>age(Locale.ENGLISH, 60000) -&gt; about a minute</li>
+ * <li>age(Locale.ENGLISH, 120000) -&gt; 2 minutes</li>
+ * <li>age(Locale.ENGLISH, 3600000) -&gt; about an hour</li>
+ * <li>age(Locale.ENGLISH, 7200000) -&gt; 2 hours</li>
+ * <li>age(Locale.ENGLISH, 86400000) -&gt; a day</li>
+ * <li>age(Locale.ENGLISH, 172800000) -&gt; 2 days</li>
* </ul>
*
* @since 4.2
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java
index a9dee840467..0c231ae7896 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java
@@ -28,10 +28,9 @@ import org.sonar.api.component.Perspective;
import org.sonar.api.rule.RuleKey;
/**
- * This perspective allows to add and get issues related to the selected component. It can be used from
- * {@link org.sonar.api.batch.Sensor}s and {@link org.sonar.api.batch.Decorator}s. Web extensions
- * must use {@link RubyIssueService}.
- * <p/>
+ * This perspective allows to add issues related to the selected component. It can be used from
+ * {@link org.sonar.api.batch.Sensor}s.
+ * <br>
* Example:
* <pre>
* import org.sonar.api.component.ResourcePerspectives;
@@ -75,7 +74,7 @@ public interface Issuable extends Perspective {
/**
* Optional, but recommended, plain-text message.
- * <p/>
+ * <br>
* Formats like Markdown or HTML are not supported. Size must not be greater than {@link Issue#MESSAGE_MAX_SIZE} characters.
* @deprecated since 5.2 use {@link #at(NewIssueLocation)}
*/
@@ -136,7 +135,7 @@ public interface Issuable extends Perspective {
/**
* Register an issue created with {@link #newIssueBuilder()}.
- * <p/>
+ * <br>
* This method is usually called from {@link org.sonar.api.batch.Sensor}s. {@link org.sonar.api.batch.Decorator}s calling this
* method must be annotated with {@code @DependedUpon(DecoratorBarriers.ISSUES_ADDED)}.
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
index 96ee3c2405b..b02e8590d30 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
@@ -114,7 +114,7 @@ public interface Issue extends Serializable {
/**
* Arbitrary distance to threshold for resolving the issue.
- * <p/>
+ * <br>
* For examples:
* <ul>
* <li>for the rule "Avoid too complex methods" : current complexity - max allowed complexity</li>
@@ -186,7 +186,7 @@ public interface Issue extends Serializable {
/**
* Non-null list of comments, ordered by chronological order.
- * <p/>
+ * <br>
* IMPORTANT: existing comments are not loaded when this method is called when analyzing project
* (from {@link BatchSide}).
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java
index fdf924df21f..5fe0c2b4574 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java
@@ -34,7 +34,7 @@ import java.util.Set;
/**
* Issue filter used to ignore issues created on lines commented with the tag "NOSONAR".
- * <p/>
+ * <br>
* Plugins, via {@link BatchSide}s, must feed this filter by registering the
* lines that contain "NOSONAR". Note that filters are disabled for the issues reported by
* end-users from UI or web services.
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java
index 2b2bd875fdb..cb43741b340 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java
@@ -24,7 +24,7 @@ import org.sonar.api.batch.BatchSide;
import org.sonar.api.issue.Issue;
/**
- * <p>An issue filter is an object that allows filtering of {@link Issue}s on batch side, preventing them from being persisted.</p>
+ * <p>An issue filter is an object that allows filtering of {@link Issue}s on batch side, preventing them from being persisted.
* @since 4.0
* @deprecated since 5.3. Use {@link org.sonar.api.scan.issue.filter.IssueFilter} instead.
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java
index 4d2c2086f69..872f9198a9d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java
@@ -29,7 +29,7 @@ import org.sonar.api.issue.Issue;
* <li>Let downstream filters decide by passing the issue to the rest of the chain</li>
* </ul>
* @since 4.0
- * @deprecated since 5.3. Use {@link org.sonar.api.issue.filter.IssueFilterChain} instead.
+ * @deprecated since 5.3. Use {@link org.sonar.api.scan.issue.filter.IssueFilterChain} instead.
*/
@Deprecated
public interface IssueFilterChain {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java
index d7df60a352f..496df500e5f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java
@@ -1348,17 +1348,19 @@ public final class CoreMetrics {
* <p>
* Here is the format (since Sonar 2.12):
* <pre>
- * <duplications>
- * <!-- Multiple groups: -->
- * <g>
- * <!-- Multiple blocks: -->
- * <b r="[resource key]" s="[first line]" l="[number of lines]" />
- * ...
- * </g>
+ * {@literal
+ * <duplications>
+ * <!-- Multiple groups: -->
+ * <g>
+ * <!-- Multiple blocks: -->
+ * <b r="[resource key]" s="[first line]" l="[number of lines]" />
* ...
- * </duplications>
+ * </g>
+ * ...
+ * </duplications>
+ * }
* </pre>
- * </p>
+ *
* @deprecated since 4.5. Internal storage of duplication is not an API.
*/
@Deprecated
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
index 379d1e866db..37225d2d255 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
@@ -30,7 +30,7 @@ import org.sonar.api.utils.SonarException;
/**
* Utility to build a distribution based on discrete values
*
- * <p>An example of usage : you wish to record the number of violations for each level of rules priority</p>
+ * <p>An example of usage : you wish to record the number of violations for each level of rules priority
*
* @since 1.10
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContext.java
index 59a46a777e4..664868190b7 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContext.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContext.java
@@ -32,7 +32,7 @@ package org.sonar.api.measures;
* Also note that you can't update what already was saved, however it is safe to call {@link #save()} several times.
* <p>
* Instances of this interface can be obtained using {@link FileLinesContextFactory}.
- * <p/>
+ * <br>
* This interface is not intended to be implemented by clients.
*
* @since 2.14
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java
index e7fa8dcf83f..1d52cc1e163 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java
@@ -24,7 +24,7 @@ import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.resources.Resource;
/**
- * <p>This interface is not intended to be implemented by clients.</p>
+ * <p>This interface is not intended to be implemented by clients.
*
* @since 2.14
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
index 3cd739d1cdb..fae0b7d794c 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
@@ -158,12 +158,12 @@ public class Measure<G extends Serializable> implements Serializable {
/**
* <p>
* Sets the persistence mode of a measure.
- * </p>
+ *
* <p>
* <b>WARNING : </b>Being able to reuse measures saved in memory is only possible within the same tree. In a multi-module project for
* example, a measure save in memory at the module level will not be accessible by the root project. In that case, database should be
* used.
- * </p>
+ *
*
* @param mode the mode
* @return the measure object instance
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
index 8b5bfcda75d..cf139075a5b 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
@@ -639,7 +639,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Sets whether the metric is qualitative or not. Default value is false.
- * <br/>
+ * <br>
* If set to true, then variations of this metric will be highlighted in the Web UI (for instance, trend icons will be red or green instead of default grey).
*
* @param b Boolean.TRUE if the metric is qualitative
@@ -652,7 +652,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Sets the domain for the metric (General, Complexity...). This is used to group metrics in the Web UI.
- * <br/>
+ * <br>
* By default, the metric belongs to no specific domain.
*
* @param d the domain
@@ -665,10 +665,10 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Specifies the formula used by Sonar to automatically aggregate measures stored on files up to the project level.
- * <br/>
- * <br/>
+ * <br>
+ * <br>
* By default, no formula is defined, which means that it's up to a sensor/decorator to compute measures on appropriate levels.
- * <br/>
+ * <br>
* When a formula is set, sensors/decorators just need to store measures at a specific level and let Sonar run the formula to store
* measures on the remaining levels.
*
@@ -696,7 +696,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Sets the best value that the metric can get (example: 100.0 for code coverage). No best value is set by default.
- * <br/>
+ * <br>
* Resources would be hidden on drilldown page, if the value of measure equals to best value.
*
* @param d the best value
@@ -709,7 +709,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Specifies whether file-level measures that equal to the defined best value are stored or not. Default is false.
- * <br/>
+ * <br>
* Example with the metric that stores the number of violation ({@link CoreMetrics#VIOLATIONS}):
* if a file has no violation, then the value '0' won't be stored in the database.
*
@@ -747,7 +747,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
/**
* Specifies whether measures from the past can be automatically deleted to minimize database volume.
- * <br/>
+ * <br>
* By default, historical data are kept.
*
* @since 2.14
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java
index 5c20bb25dcc..84ef3f76299 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java
@@ -35,9 +35,9 @@ import static java.util.Objects.requireNonNull;
/**
* Utility to build a distribution based on defined ranges
- * <p/>
+ * <br>
* <p>An example of usage : you wish to record the percentage of lines of code that belong to method
- * with pre-defined ranges of complexity.</p>
+ * with pre-defined ranges of complexity.
*
* @since 1.10
* @deprecated since 5.2 use {@link org.sonar.api.ce.measure.RangeDistributionBuilder instead}
@@ -143,7 +143,7 @@ public class RangeDistributionBuilder implements MeasureBuilder {
* Adds an existing Distribution to the current one.
* It will create the entries if they don't exist.
* Can be used to add the values of children resources for example
- * <p/>
+ * <br>
* Since 2.2, the distribution returned will be invalidated in case the
* measure given does not use the same bottom limits
*
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/notifications/Notification.java b/sonar-plugin-api/src/main/java/org/sonar/api/notifications/Notification.java
index ced890a4b3b..365ee205797 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/notifications/Notification.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/notifications/Notification.java
@@ -34,7 +34,7 @@ import java.util.Map;
* When creating a new notification, it is strongly advised to give a default message that can be used by channels
* that don't want to specifically format messages for different notification types. You can use
* {@link Notification#setDefaultMessage(String)} for that purpose.
- * </p>
+ *
*
* @since 2.10
*/
@@ -48,7 +48,7 @@ public class Notification implements Serializable {
/**
* <p>
* Create a new {@link Notification} of the given type.
- * </p>
+ *
* Example: type = "new-violations"
*
* @param type the type of notification
@@ -70,11 +70,11 @@ public class Notification implements Serializable {
* <p>
* When creating a new notification, it is strongly advised to give a default message that can be
* used by channels that don't want to specifically format messages for different notification types.
- * </p>
+ *
* <p>
* This method is equivalent to setting a value for the field {@link #DEFAULT_MESSAGE_KEY} with
* {@link #setFieldValue(String, String)}.
- * </p>
+ *
*
* @since 3.5
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/notifications/NotificationChannel.java b/sonar-plugin-api/src/main/java/org/sonar/api/notifications/NotificationChannel.java
index d80f325f476..eef657914f7 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/notifications/NotificationChannel.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/notifications/NotificationChannel.java
@@ -26,7 +26,7 @@ import org.sonar.api.server.ServerSide;
/**
* <p>
* Plugins should extend this class to provide implementation on a specific way to deliver notifications.
- * </p>
+ *
* For example:
* <ul>
* <li>email - sends email as soon as possible</li>
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/InputFile.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/InputFile.java
index ca6406b7782..ec0e14be058 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/InputFile.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/InputFile.java
@@ -33,7 +33,7 @@ public interface InputFile {
* The source base directory, different than the project basedir.
*
* <p>For example in maven projects, the basedir of a source file stored in
- * <code>src/main/java/org/foo/</code> is the directory <code>src/main/java</code>.</p>
+ * <code>src/main/java/org/foo/</code> is the directory <code>src/main/java</code>.
*/
File getFileBaseDir();
@@ -48,10 +48,10 @@ public interface InputFile {
* Path relative to basedir. Directory separator is slash <code>'/'</code>, whatever the platform.
*
* <p>Example on windows: if file basedir is <code>c:\project\src\</code> and file is <code>c:\project\src\org\foo\Bar.java</code>, then relative path
- * is <code>org/foo/Bar.java</code></p>
+ * is <code>org/foo/Bar.java</code>
*
* <p>Example on unix: if file basedir is <code>/project/src</code> and file is <code>/project/src/org/foo/Bar.java</code>, then relative path
- * is <code>org/foo/Bar.java</code> as well.</p>
+ * is <code>org/foo/Bar.java</code> as well.
*/
String getRelativePath();
@@ -59,7 +59,7 @@ public interface InputFile {
* Get an {@link InputStream} that reads from the file.
*
* <p>The returned stream is buffered so there is no need to use a
- * <code>BufferedInputStream</code></p>
+ * <code>BufferedInputStream</code>
*
* @return the stream
* @throws FileNotFoundException if the file is not found
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java
index cd0e1b2ee2a..b58ed7cfacf 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java
@@ -27,7 +27,7 @@ import org.sonar.api.server.ServerSide;
/**
* The extension point to define a new language
- * <p/>
+ * <br>
* Instantiation strategy changed to PER_BATCH in version 4.2.
*
* @since 1.10
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java
index 7596ecf945c..a1e8b63d902 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java
@@ -211,7 +211,7 @@ public abstract class Resource implements Serializable {
* The parent is used to build the resources tree, for example for relations between files, directories and projects.
* <p>
* Return null if the parent is the current project (or module in case of multi-module).
- * </p>
+ *
*/
@CheckForNull
public abstract Resource getParent();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceType.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceType.java
index a6eeabbdb7c..3a5f16f3230 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceType.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceType.java
@@ -29,14 +29,14 @@ import javax.annotation.concurrent.Immutable;
import java.util.Map;
/**
- * <p>Experimental extension to declare types of resources.</p>
+ * <p>Experimental extension to declare types of resources.
* <p>
* Since 3.0, ResourceType object can declare properties that give information about the capabilities of the
* resource type. Those properties may be used, of instance, to adapt the Web UI according to the type of
* the resource being displayed.
* <br>
* Currently, the following properties can be defined:
- * </p>
+ *
* <ul>
* <li>"deletable": if set to "true", then this resource can be deleted/purged.</li>
* <li>"supportsMeasureFilters": if set to "true", then this resource can be displayed in measure filters</li>
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Scopes.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Scopes.java
index e699f118c49..e97f39607ef 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Scopes.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Scopes.java
@@ -25,9 +25,9 @@ import org.apache.commons.lang.StringUtils;
/**
* Resource scopes are used to group some types of resources. For example Java methods, Flex methods, C functions
* and Cobol paragraphs are grouped in the scope "block unit".
- * <p/>
+ * <br>
* Scopes are generally used in UI to display/hide some services or in web services.
- * <p/>
+ * <br>
* Scopes are not extensible by plugins.
*
* @since 2.6
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleFinder.java
index e662def172d..38fbb4f02b0 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleFinder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleFinder.java
@@ -52,7 +52,7 @@ public interface RuleFinder {
Rule findByKey(RuleKey key);
/**
- * @throw IllegalArgumentException if more than one result
+ * @throws IllegalArgumentException if more than one result
*/
@CheckForNull
Rule find(RuleQuery query);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileExclusions.java b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileExclusions.java
index 95c7b1addd3..c8dab9ce522 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileExclusions.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileExclusions.java
@@ -31,7 +31,7 @@ import java.util.List;
/**
* Configuration of file inclusions and exclusions.
* <p>Plugins must not extend nor instantiate this class. An instance is injected at
- * runtime.</p>
+ * runtime.
*
* @since 3.5
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/ModuleFileSystem.java b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/ModuleFileSystem.java
index da9deb26d59..65186db14e2 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/ModuleFileSystem.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/ModuleFileSystem.java
@@ -19,15 +19,13 @@
*/
package org.sonar.api.scan.filesystem;
-import org.sonar.api.batch.BatchSide;
-import org.sonar.api.batch.fs.FileSystem;
-import org.sonar.api.batch.fs.InputFile;
-
-import javax.annotation.CheckForNull;
-
import java.io.File;
import java.nio.charset.Charset;
import java.util.List;
+import javax.annotation.CheckForNull;
+import org.sonar.api.batch.BatchSide;
+import org.sonar.api.batch.fs.FileSystem;
+import org.sonar.api.batch.fs.InputFile;
/**
* @since 3.5
@@ -81,8 +79,7 @@ public interface ModuleFileSystem {
/**
* Default charset for files of the module. If it's not defined, then
- * return the platform default charset. When trying to read an input file it is better to rely on
- * {@link InputFile#encoding()} as encoding may be different for each file.
+ * return the platform default charset.
*/
Charset sourceCharset();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java b/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java
index 1ecf58f1977..9add6cb6653 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java
@@ -25,8 +25,8 @@ import org.sonar.api.resources.Resource;
/**
* Grant access to newly created projects.
- * <p/>
- * <p>This component is not supposed to be called by standard plugins.</p>
+ * <br>
+ * <p>This component is not supposed to be called by standard plugins.
*
* @since 3.2
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/Display.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/Display.java
index 59f95065648..10b4e1e2a34 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/Display.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/Display.java
@@ -46,7 +46,7 @@ public final class Display {
* It can also be an external URL, for example "http://www.mydomain/myincon.png".
*
* Must not be blank.
- * <p/>
+ * <br>
* The recommended format is SVG with a size of 24x24 pixels.
* Other supported format is PNG, with a size of 40x40 pixels.
*/
@@ -57,7 +57,7 @@ public final class Display {
/**
* Background color for the provider button displayed in the login form.
* It's a Hexadecimal value, for instance #205081.
- * <p/>
+ * <br>
* If not provided, the default value is #236a97
*/
public String getBackgroundColor() {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/debt/DebtRemediationFunction.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/debt/DebtRemediationFunction.java
index 07912bd464a..e7b2cdf0b6e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/debt/DebtRemediationFunction.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/debt/DebtRemediationFunction.java
@@ -24,7 +24,7 @@ import javax.annotation.CheckForNull;
/**
* Function used to calculate the remediation cost of an issue. See {@link Type} for details.
* <p>The gap multiplier and base effort involved in the functions are durations. They are defined in hours, minutes and/or
- * seconds. Examples: "5min", "1h 10min". Supported units are "d" (days), "h" (hour), and "min" (minutes).</p>
+ * seconds. Examples: "5min", "1h 10min". Supported units are "d" (days), "h" (hour), and "min" (minutes).
*
* @since 4.3
*/
@@ -47,13 +47,13 @@ public interface DebtRemediationFunction {
* with each complexity point above the allowed value.
* <p>
* <code>Total remediation cost = base effort + (number of noncompliance x gap multiplier)</code>
- * </p>
+ *
* <p>The rule must provide the "gap" value when raising an issue. Let’s take as a example the “Paragraphs should not be too complex” rule.
* If you set the rule threshold to 20, and you have a paragraph with a complexity of 27, you have 7 points of complexity
* to remove. Internally, this is called the Gap. In that case, if you use the LINEAR_OFFSET configuration
* with an base effort of 4h and a remediation cost of 1mn, the effort for this issue related to a
* too-complex block of code will be: (7 complexity points x 1min) + 4h = 4h and 7mn
- * </p>
+ *
*/
LINEAR_OFFSET(true, true),
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
index f986ff7248e..20d2def8102 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
@@ -56,9 +56,9 @@ import static org.apache.commons.lang.StringUtils.trimToNull;
/**
* Defines some coding rules of the same repository. For example the Java Findbugs plugin provides an implementation of
* this extension point in order to define the rules that it supports.
- * <p/>
+ * <br>
* This interface replaces the deprecated class org.sonar.api.rules.RuleRepository.
- * <p/>
+ * <br>
* <h3>How to use</h3>
* <pre>
* public class MyJsRulesDefinition implements RulesDefinition {
@@ -98,10 +98,10 @@ import static org.apache.commons.lang.StringUtils.trimToNull;
* }
* }
* </pre>
- * <p/>
+ * <br>
* If rules are declared in a XML file with the standard SonarQube format (see
* {@link org.sonar.api.server.rule.RulesDefinitionXmlLoader}), then it can be loaded by using :
- * <p/>
+ * <br>
* <pre>
* public class MyJsRulesDefinition implements RulesDefinition {
*
@@ -120,10 +120,10 @@ import static org.apache.commons.lang.StringUtils.trimToNull;
* }
* }
* </pre>
- * <p/>
+ * <br>
* In the above example, XML file must contain name and description of each rule. If it's not the case, then the
* (deprecated) English bundles can be used :
- * <p/>
+ * <br>
* <pre>
* public class MyJsRulesDefinition implements RulesDefinition {
*
@@ -382,7 +382,7 @@ public interface RulesDefinition {
/**
* New builder for {@link org.sonar.api.server.rule.RulesDefinition.Repository}.
- * <p/>
+ * <br>
* A plugin can add rules to a repository that is defined then executed by another plugin. For instance
* the FbContrib plugin contributes to the Findbugs plugin rules. In this case no need
* to execute {@link org.sonar.api.server.rule.RulesDefinition.NewRepository#setName(String)}
@@ -704,7 +704,7 @@ public interface RulesDefinition {
/**
* The type as defined by the SonarQube Quality Model.
- * <p/>
+ * <br>
* When a plugin does not define rule type, then it is deduced from
* tags:
* <ul>
@@ -824,7 +824,7 @@ public interface RulesDefinition {
* For rules that use LINEAR or LINEAR_OFFSET remediation functions, the meaning
* of the function parameter (= "gap") must be set. This description
* explains what 1 point of "gap" represents for the rule.
- * <p/>
+ * <br>
* Example: for the "Insufficient condition coverage", this description for the
* remediation function gap multiplier/base effort would be something like
* "Effort to test one uncovered condition".
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionI18nLoader.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionI18nLoader.java
index 1a915f168bf..8876b6b4cc8 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionI18nLoader.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionI18nLoader.java
@@ -28,9 +28,9 @@ import org.sonar.api.server.ServerSide;
* Loads the English bundles of rules (name, description and parameters) that are
* deprecated since 4.2. It can be useful when loading existing XML files that
* do not contain rule names and descriptions.
- * <p/>
+ * <br>
* This class must be executed after declaring rules on {@link RulesDefinition.NewRepository}.
- * <p/>
+ * <br>
* Note that localization of rules was dropped in version 4.2. All texts are English.
*
* @see org.sonar.api.server.rule.RulesDefinition for an example
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/LocalConnector.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/LocalConnector.java
index 9ba6167ec96..468077674c8 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/LocalConnector.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/LocalConnector.java
@@ -41,7 +41,7 @@ import javax.annotation.CheckForNull;
* }
* }
* </pre>
- * </p>
+ *
* @since 5.5
*/
@Beta
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java
index 4dedab64d5a..de2f60033b8 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java
@@ -54,10 +54,10 @@ import static java.lang.String.format;
/**
* Defines a web service. Note that contrary to the deprecated {@link org.sonar.api.web.Webservice}
* the ws is fully implemented in Java and does not require any Ruby on Rails code.
- * <p/>
- * <p/>
+ * <br>
+ * <br>
* The classes implementing this extension point must be declared by {@link org.sonar.api.Plugin}.
- * <p/>
+ * <br>
* <h3>How to use</h3>
* <pre>
* public class HelloWs implements WebService {
@@ -99,7 +99,7 @@ public interface WebService extends Definable<WebService.Context> {
/**
* Create a new controller.
- * <p/>
+ * <br>
* Structure of request URL is <code>http://&lt;server&gt;/&lt>controller path&gt;/&lt;action path&gt;?&lt;parameters&gt;</code>.
*
* @param path the controller path must not start or end with "/". It is recommended to start with "api/"
@@ -293,7 +293,7 @@ public interface WebService extends Definable<WebService.Context> {
/**
* Link to the document containing an example of response. Content must be UTF-8 encoded.
- * <p/>
+ * <br>
* Example:
* <pre>
* newAction.setResponseExample(getClass().getResource("/org/sonar/my-ws-response-example.json"));
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/user/RubyUserService.java b/sonar-plugin-api/src/main/java/org/sonar/api/user/RubyUserService.java
index d2ba9865c4b..4609105e709 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/user/RubyUserService.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/user/RubyUserService.java
@@ -37,7 +37,7 @@ public interface RubyUserService {
/**
* Search for users
- * <p/>
+ * <br>
* Optional parameters are:
* <ul>
* <li><code>s</code> to match all the logins or names containing this search query</li>
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Duration.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Duration.java
index 554ff4d6a54..4eab07e4b8f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Duration.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Duration.java
@@ -97,7 +97,7 @@ public class Duration implements Serializable {
/**
* Return the duration in text, by using the given hours in day parameter to process hours.
- * <br/>
+ * <br>
* Duration.decode("1d 1h", 8).encode(8) will return "1d 1h"
* Duration.decode("2d", 8).encode(16) will return "1d"
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java
index 5645f5223b7..febbf03ee98 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java
@@ -23,9 +23,9 @@ import java.util.Locale;
import javax.annotation.CheckForNull;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.BatchSide;
+import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.config.Settings;
import org.sonar.api.i18n.I18n;
-import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide;
/**
@@ -64,8 +64,9 @@ public class Durations {
/**
* Convert the text to a Duration
* <br>
- * Example : decode("9d 10 h") -> Duration.encode("10d2h") (if sonar.technicalDebt.hoursInDay property is set to 8)<br />
- * Throws {@code IllegalArgumentException}
+ * Example : decode("9d 10 h") -&gt; Duration.encode("10d2h") (if sonar.technicalDebt.hoursInDay property is set to 8)
+ * <br>
+ * @throws IllegalArgumentException
*/
public Duration decode(String duration) {
return Duration.decode(duration, hoursInDay());
@@ -74,7 +75,7 @@ public class Durations {
/**
* Return the string value of the Duration.
* <br>
- * Example : encode(Duration.encode("9d 10h")) -> "10d2h" (if sonar.technicalDebt.hoursInDay property is set to 8)
+ * Example : encode(Duration.encode("9d 10h")) -&gt; "10d2h" (if sonar.technicalDebt.hoursInDay property is set to 8)
*/
public String encode(Duration duration) {
return duration.encode(hoursInDay());
@@ -83,7 +84,7 @@ public class Durations {
/**
* Return the formatted work duration.
* <br>
- * Example : format(Locale.FRENCH, Duration.encode("9d 10h"), DurationFormat.SHORT) -> 10j 2h (if sonar.technicalDebt.hoursInDay property is set to 8)
+ * Example : format(Locale.FRENCH, Duration.encode("9d 10h"), DurationFormat.SHORT) -&gt; 10j 2h (if sonar.technicalDebt.hoursInDay property is set to 8)
*
*/
public String format(Locale locale, Duration duration, DurationFormat format) {
@@ -93,7 +94,7 @@ public class Durations {
/**
* Return the formatted work duration.
* <br>
- * Example : format(Locale.FRENCH, Duration.encode("9d 10h"), DurationFormat.SHORT) -> 10j 2h (if sonar.technicalDebt.hoursInDay property is set to 8)
+ * Example : format(Locale.FRENCH, Duration.encode("9d 10h"), DurationFormat.SHORT) -&gt; 10j 2h (if sonar.technicalDebt.hoursInDay property is set to 8)
*
*/
public String format(Locale locale, Duration duration) {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/KeyValueFormat.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/KeyValueFormat.java
index 5eb2737f108..5c8883e91a6 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/KeyValueFormat.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/KeyValueFormat.java
@@ -34,9 +34,9 @@ import org.sonar.api.rules.RulePriority;
/**
* <p>Formats and parses key/value pairs with the text representation : "key1=value1;key2=value2". Field typing
* is supported, to make conversion from/to primitive types easier for example.
- * <p/>
+ * <br>
* Since version 4.5.1, text keys and values are escaped if they contain the separator characters '=' or ';'.
- * <p/>
+ * <br>
* <b>Parsing examples</b>
* <pre>
* Map&lt;String,String&gt; mapOfStrings = KeyValueFormat.parse("hello=world;foo=bar");
@@ -48,7 +48,7 @@ import org.sonar.api.rules.RulePriority;
* Map&lt;String,MyClass&gt; mapOfStringMyClass = KeyValueFormat.parse("foo=xxx;bar=yyy",
* KeyValueFormat.newStringConverter(), new MyClassConverter());
* </pre>
- * <p/>
+ * <br>
* <b>Formatting examples</b>
* <pre>
* String output = KeyValueFormat.format(map);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/MessageException.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/MessageException.java
index e2b86645538..856e0da0df1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/MessageException.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/MessageException.java
@@ -30,7 +30,7 @@ import static com.google.common.collect.Lists.newArrayList;
/**
* Runtime exception for "functional" error. It aims to be displayed to end-users, without any technical information
* like stack traces.
- * <p/>
+ * <br>
*
* It's handling depends on the versions of the sonar-batch and sonar-runner. sonar-runner 2.4 will only show the
* message associated with this exception.
@@ -38,7 +38,7 @@ import static com.google.common.collect.Lists.newArrayList;
* exception. If this exception is created without cause, then only the message associated with this exception is shown;
* otherwise, its causes are also shown.
* Previous combinations of sonar-batch/sonar-runner log all stack trace.
- * <p/>
+ * <br>
* Message should be clear and complete. Keep in mind that context might not be added to the exception.
* Names of processed resource and decorator are for example not automatically added when throwing {@link MessageException}
* from {@link org.sonar.api.batch.Decorator}.
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java
index 1b82eb6dac0..585e14d034d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java
@@ -33,7 +33,7 @@ import org.sonar.api.server.ServerSide;
/**
* Proxy over {@link java.lang.System}. It aims to improve testability of classes
* that interact with low-level system methods, for example :
- * <p/>
+ * <br>
* <pre>
* public class MyClass {
* private final System2 system;
@@ -56,9 +56,9 @@ import org.sonar.api.server.ServerSide;
* assertThat(new MyClass(system).xxx()).isEqualTo(now);
* }
* </pre>
- * <p/>
+ * <br>
* Note that the name System2 was chosen to not conflict with {@link java.lang.System}.
- * <p/>
+ * <br>
* An instance is available in IoC container since 4.3.
*
* @since 4.2
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeUtils.java
index d862a6c8e7e..5ff008293c6 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeUtils.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeUtils.java
@@ -29,13 +29,13 @@ public final class TimeUtils {
/**
* Label for a duration, expressed in numbers of ms, seconds or minutes.
- * <p/>
+ * <br>
* Examples:
* <ul>
- * <li>10 -> "10ms"</li>
- * <li>100 -> "100ms"</li>
- * <li>10000 -> "10s"</li>
- * <li>100000 -> "1min 40s"</li>
+ * <li>10 -&gt; "10ms"</li>
+ * <li>100 -&gt; "100ms"</li>
+ * <li>10000 -&gt; "10s"</li>
+ * <li>100000 -&gt; "1min 40s"</li>
* </ul>
*/
public static String formatDuration(long durationInMs) {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Version.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Version.java
index 50813e97c0e..23f7a2b738f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/Version.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/Version.java
@@ -31,13 +31,13 @@ import static org.apache.commons.lang.StringUtils.trimToEmpty;
/**
* Version composed of 3 integer-sequences (major, minor and patch fields) and optionally a qualifier.
- * <p></p>
+ * <p>
* Examples: 1.0, 1.0.0, 1.2.3, 1.2-beta1, 1.2.1-beta-1
- * <p></p>
+ * <p>
* <h3>IMPORTANT NOTE</h3>
* Qualifier is ignored when comparing objects (methods {@link #equals(Object)}, {@link #hashCode()}
* and {@link #compareTo(Version)}).
- * <p></p>
+ * <p>
* <pre>
* assertThat(Version.parse("1.2")).isEqualTo(Version.parse("1.2-beta1"));
* assertThat(Version.parse("1.2").compareTo(Version.parse("1.2-beta1"))).isZero();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/WildcardPattern.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/WildcardPattern.java
index 70b4a8061ee..48b28e33421 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/WildcardPattern.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/WildcardPattern.java
@@ -22,7 +22,6 @@ package org.sonar.api.utils;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
-
import org.apache.commons.lang.StringUtils;
/**
@@ -36,7 +35,6 @@ import org.apache.commons.lang.StringUtils;
* <li>* matches zero or more characters</li>
* <li>** matches zero or more 'directories'</li>
* </ul>
- * </p>
* <p>
* Some examples of patterns:
* <ul>
@@ -50,12 +48,11 @@ import org.apache.commons.lang.StringUtils;
* <li><code>org/&#42;&#42;/*.java</code> - matches all <code>.java</code> files underneath the <code>org</code> directory,
* e.g. <code>org/Foo.java</code> or <code>org/foo/Bar.java</code> or <code>org/foo/bar/Baz.java</code></li>
* </ul>
- * </p>
* <p>
* Another implementation, which is also based on Java Regular Expressions, can be found in
* <a href="https://github.com/JetBrains/intellij-community/blob/idea/107.743/platform/util/src/com/intellij/openapi/util/io/FileUtil.java#L847">FileUtil</a>
* from IntelliJ OpenAPI.
- * </p>
+ *
*
* @since 1.10
*/
@@ -189,12 +186,12 @@ public class WildcardPattern {
* This is used to match Java-classes, i.e. <code>org.foo.Bar</code> against <code>org/**</code>.
* <b>However usage of character other than "/" as a directory separator is misleading and should be avoided,
* so method {@link #create(String)} is preferred over this one.</b>
- * </p>
+ *
* <p>
* Also note that no matter whether forward or backward slashes were used in the <code>antPattern</code>
* the returned pattern will use <code>directorySeparator</code>.
* Thus to match Windows-style path "dir\file.ext" against pattern "dir/file.ext" normalization should be performed.
- * </p>
+ *
*/
public static WildcardPattern create(String pattern, String directorySeparator) {
String key = pattern + directorySeparator;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/internal/JUnitTempFolder.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/internal/JUnitTempFolder.java
index 93a1ea5bd9b..2ca7eecfa8f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/internal/JUnitTempFolder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/internal/JUnitTempFolder.java
@@ -34,7 +34,7 @@ import java.io.IOException;
/**
* Implementation of {@link org.sonar.api.utils.TempFolder} to be used
* only in JUnit tests. It wraps {@link org.junit.rules.TemporaryFolder}.
- * <p/>
+ * <br>
* Example:
* <pre>
* public class MyTest {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/ConsoleLogger.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/ConsoleLogger.java
index dc5f81ad5f7..f06f9dd0f3a 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/ConsoleLogger.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/ConsoleLogger.java
@@ -27,7 +27,7 @@ import static org.sonar.api.utils.log.ConsoleFormatter.format;
/**
* Slow implementation based on {@link java.lang.System#out}. It is not production-ready and it must be used
* only for the tests that do not have logback dependency.
- * <p/>Implementation of message patterns is naive. It does not support escaped '{' and '}'
+ * <br>Implementation of message patterns is naive. It does not support escaped '{' and '}'
* arguments.
*/
class ConsoleLogger extends BaseLogger {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/LogTester.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/LogTester.java
index 25bd90bc669..32e90f611a8 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/LogTester.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/LogTester.java
@@ -24,12 +24,12 @@ import org.junit.rules.ExternalResource;
/**
* <b>For tests only</b>
- * <p/>
+ * <br>
* This JUnit rule allows to configure and access logs in tests. By default
* trace level is enabled.
- * <p/>
+ * <br>
* Warning - not compatible with parallel execution of tests in the same JVM fork.
- * <p/>
+ * <br>
* Example:
* <pre>
* public class MyClass {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/Logger.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/Logger.java
index 40331b76f3b..36665b990a6 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/Logger.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/log/Logger.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
/**
* SonarQube plugins are not coupled with external logging libraries like SLF4J or Logback.
- * <p></p>
+ * <p>
* Example:
* <pre>
* public class MyClass {
@@ -35,13 +35,13 @@ import javax.annotation.Nullable;
* }
* }
* </pre>
- * <p></p>
+ * <p>
* Message arguments are defined with <code>{}</code>, but not with {@link java.util.Formatter} syntax.
*
- * <p></p>
+ * <p>
* INFO, WARN and ERROR levels are always enabled. They can't be disabled by users.
* DEBUG and TRACE levels are enabled on demand with the property <code>sonar.log.level</code>.
- * <p></p>
+ * <p>
* See {@link org.sonar.api.utils.log.LogTester} for testing facilities.
* @since 5.1
*/
@@ -51,7 +51,7 @@ public interface Logger {
/**
* Logs a TRACE message.
- * <p></p>
+ * <p>
* TRACE messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
* They can significantly slow down performances. The standard use-case is logging of
@@ -62,7 +62,7 @@ public interface Logger {
/**
* Logs an TRACE parameterized message according to the specified format and argument. Example:
* <code>trace("Value is {}", value)</code>
- * <p></p>
+ * <p>
* TRACE messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
* They can significantly slow down performances. The standard use-case is logging of
@@ -73,7 +73,7 @@ public interface Logger {
/**
* Logs an TRACE parameterized message according to the specified format and arguments. Example:
* <code>trace("Values are {} and {}", value1, value2)</code>
- * <p></p>
+ * <p>
* TRACE messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
* They can significantly slow down performances. The standard use-case is logging of
@@ -84,12 +84,12 @@ public interface Logger {
/**
* Logs an TRACE parameterized message according to the specified format and arguments. Example:
* <code>trace("Values are {} and {}", value1, value2)</code>
- * <p></p>
+ * <p>
* TRACE messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
* They can significantly slow down performances. The standard use-case is logging of
* SQL and Elasticsearch requests.
- * <p></p>
+ * <p>
* This variant incurs the hidden cost of creating an Object[] before invoking the method.
* The variants taking one and two arguments exist solely in order to avoid this hidden cost. See
* {@link #trace(String, Object)} and {@link #trace(String, Object, Object)}
@@ -107,7 +107,7 @@ public interface Logger {
/**
* Logs an DEBUG parameterized message according to the specified format and argument. Example:
* <code>debug("Value is {}", value)</code>
- * <p></p>
+ * <p>
* Debug messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
*/
@@ -116,7 +116,7 @@ public interface Logger {
/**
* Logs an DEBUG parameterized message according to the specified format and arguments. Example:
* <code>debug("Values are {} and {}", value1, value2)</code>
- * <p></p>
+ * <p>
* Debug messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
*/
@@ -125,10 +125,10 @@ public interface Logger {
/**
* Logs an DEBUG parameterized message according to the specified format and arguments. Example:
* <code>debug("Values are {}, {} and {}", value1, value2, value3)</code>
- * <p></p>
+ * <p>
* Debug messages must
* be valuable for diagnosing production problems. They must not be used for development debugging.
- * * <p></p>
+ * * <p>
* This variant incurs the hidden cost of creating an Object[] before invoking the method.
* The variants taking one and two arguments exist solely in order to avoid this hidden cost. See
* {@link #debug(String, Object)} and {@link #debug(String, Object, Object)}
@@ -155,7 +155,7 @@ public interface Logger {
/**
* Logs an INFO parameterized message according to the specified format and arguments. Example:
* <code>info("Values are {}, {} and {}", value1, value2, value3)</code>
- * <p></p>
+ * <p>
* This variant incurs the hidden cost of creating an Object[] before invoking the method.
* The variants taking one and two arguments exist solely in order to avoid this hidden cost. See
* {@link #info(String, Object)} and {@link #info(String, Object, Object)}
@@ -187,7 +187,7 @@ public interface Logger {
/**
* Logs a WARN parameterized message according to the specified format and arguments. Example:
* <code>warn("Values are {}, {} and {}", value1, value2, value3)</code>
- * <p></p>
+ * <p>
* This variant incurs the hidden cost of creating an Object[] before invoking the method.
* The variants taking one and two arguments exist solely in order to avoid this hidden cost. See
* {@link #warn(String, Object)} and {@link #warn(String, Object, Object)}
@@ -214,7 +214,7 @@ public interface Logger {
/**
* Logs a ERROR parameterized message according to the specified format and arguments. Example:
* <code>error("Values are {}, {} and {}", value1, value2, value3)</code>
- * <p></p>
+ * <p>
* This variant incurs the hidden cost of creating an Object[] before invoking the method.
* The variants taking one and two arguments exist solely in order to avoid this hidden cost. See
* {@link #error(String, Object)} and {@link #error(String, Object, Object)}
@@ -230,10 +230,10 @@ public interface Logger {
* Attempt to change logger level. Return true if it succeeded, false if
* the underlying logging facility does not allow to change level at
* runtime.
- * <p></p>
+ * <p>
* This method must not be used to enable DEBUG or TRACE logs in tests. Use
* {@link org.sonar.api.utils.log.LogTester#setLevel(LoggerLevel)} instead.
- * <p></p>
+ * <p>
* The standard use-case is to customize logging of embedded 3rd-party
* libraries.
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/text/JsonWriter.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/text/JsonWriter.java
index dd19cec3615..7658439803c 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/text/JsonWriter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/text/JsonWriter.java
@@ -47,15 +47,15 @@ import java.util.Map;
* .endObject()
* .close();
* </pre>
- * </p>
+ *
* <p>
* By default, null objects are not serialized. To enable {@code null} serialization,
* use {@link #setSerializeNulls(boolean)}.
- * </p>
+ *
* <p>
* By default, emptry strings are serialized. To disable empty string serialization,
* use {@link #setSerializeEmptys(boolean)}.
- * </p>
+ *
*
* @since 4.2
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/AbstractRubyTemplate.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/AbstractRubyTemplate.java
index e334b43803a..730db7c6242 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/AbstractRubyTemplate.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/AbstractRubyTemplate.java
@@ -30,7 +30,7 @@ import java.io.InputStream;
/**
* It's useful in development environment to see browser rendering in real time while editing the template. To do that, just
- * return an absolute path in the method getTemplatePath() :<br/>
+ * return an absolute path in the method getTemplatePath() :<br>
* <pre>
* <code>
* protected String getTemplatePath() {
@@ -39,8 +39,8 @@ import java.io.InputStream;
* </code>
* </pre>
* Build and deploy the plugin in /extensions/plugins. The file /tmp/sample_dashboard_widget.erb will be reloaded on each request.
- * <p/>
- * <br/>
+ * <br>
+ * <br>
* In production environment, you have to return the classloader path, for example "/org/sonar/myplugin/sample_dashboard_widget.erb".
*
* @since 1.11
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/Criterion.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/Criterion.java
index f460c361814..76eaf82ae66 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/Criterion.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/Criterion.java
@@ -61,7 +61,7 @@ public final class Criterion {
/**
* Creates a new {@link Criterion} with a numerical value.
*
- * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}</p>
+ * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}
*
* @throws IllegalArgumentException if {@code operator} is not valid
*/
@@ -72,7 +72,7 @@ public final class Criterion {
/**
* Creates a new {@link Criterion} with a text value.
*
- * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}</p>
+ * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}
*
* @throws IllegalArgumentException if {@code operator} is not valid
*/
@@ -83,7 +83,7 @@ public final class Criterion {
/**
* Creates a new {@link Criterion} on a metric, with a numerical value.
*
- * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}</p>
+ * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}
*
* @throws IllegalArgumentException if {@code operator} is not valid
*/
@@ -94,7 +94,7 @@ public final class Criterion {
/**
* Creates a new {@link Criterion} on a metric, with a text value.
*
- * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}</p>
+ * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}
*
* @throws IllegalArgumentException if {@code operator} is not valid
*/
@@ -130,7 +130,7 @@ public final class Criterion {
/**
* Get the the criterion's operator.
*
- * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}</p>
+ * <p>Valid values for the {@code operator} are {@code #EQ}, {@code #GT}, {@code #GTE}, {@code #LT} and {@code #LTE}
*
* @return the operator
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/Dashboard.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/Dashboard.java
index 3cfd974f98c..f4825d2e27c 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/Dashboard.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/Dashboard.java
@@ -29,7 +29,7 @@ import java.util.Map;
/**
* Definition of a dashboard.
- * <p/>
+ * <br>
* Its name and description can be retrieved using the i18n mechanism, using the keys "dashboard.&lt;id&gt;.name" and
* "dashboard.&lt;id&gt;.description".
*
@@ -56,7 +56,7 @@ public final class Dashboard {
/**
* Add a widget with the given parameters, and return the newly created {@link Widget} object if one wants to add parameters to it.
*
- * <p>The widget ids are listed by the web service /api/widgets</p>
+ * <p>The widget ids are listed by the web service /api/widgets
*
* @param widgetId id of an existing widget
* @param columnId column starts with 1. The widget is ignored if the column id does not match the layout.
@@ -90,7 +90,7 @@ public final class Dashboard {
/**
* Sets the description of the dashboard.
- * <p/>
+ * <br>
* Note: you should use the i18n mechanism for the description.
*
* @param description the description to set
@@ -119,7 +119,7 @@ public final class Dashboard {
/**
* A dashboard is global when it doesn't display information from a projet but rather more general information.
- * <p>Before version 3.1 no dashboard was global.</p>
+ * <p>Before version 3.1 no dashboard was global.
*
* @since 3.1
*/
@@ -129,7 +129,7 @@ public final class Dashboard {
/**
* A dashboard is global when it doesn't display information from a projet but rather more general information.
- * <p>Before version 3.1 no dashboard was global.</p>
+ * <p>Before version 3.1 no dashboard was global.
*
* @since 3.1
*/
@@ -141,7 +141,7 @@ public final class Dashboard {
/**
* A dashboard can be activated for all anonymous users or users who haven't configured their own dashboards.
* <p>Before version 3.1 every dashboard created through this extension point was automatically activated.
- * This is still the default behavior.</p>
+ * This is still the default behavior.
*
* @since 3.1
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/Filter.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/Filter.java
index 035c189352e..dbc6c68fcbd 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/Filter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/Filter.java
@@ -27,7 +27,7 @@ import java.util.List;
/**
* Definition of a filter.
*
- * <p>Its name can be retrieved using the i18n mechanism, using the keys "filter.&lt;id&gt;.name".</p>
+ * <p>Its name can be retrieved using the i18n mechanism, using the keys "filter.&lt;id&gt;.name".
*
* @since 3.1
*/
@@ -112,7 +112,7 @@ public final class Filter {
/**
* Get the type of display used by this {@link Filter}.
*
- * <p>Can be either {@code #LIST} or {@code #TREEMAP}</p>
+ * <p>Can be either {@code #LIST} or {@code #TREEMAP}
*
* @return the display type
*/
@@ -123,7 +123,7 @@ public final class Filter {
/**
* Set the type of display used by this {@link Filter}.
*
- * <p>Can be either {@code #LIST} or {@code #TREEMAP}</p>
+ * <p>Can be either {@code #LIST} or {@code #TREEMAP}
*
* @return this filter
* @throws IllegalArgumentException if {@code displayAs} is not {@code #LIST} or {@code #TREEMAP}
@@ -137,7 +137,7 @@ public final class Filter {
/**
* Get the size of a page displayed this {@link Filter}.
*
- * <p>The page size is between <code>20</code> and <code>200</code> (included)</p>
+ * <p>The page size is between <code>20</code> and <code>200</code> (included)
*
* @return the display type
*/
@@ -148,7 +148,7 @@ public final class Filter {
/**
* Set the size of a page displayed this {@link Filter}.
*
- * <p>The page size should be between <code>20</code> and <code>200</code> (included)</p>
+ * <p>The page size should be between <code>20</code> and <code>200</code> (included)
*
* @return the display type
* @throws IllegalArgumentException if {@code pageSize} is not lower than {@code 20} or greater than {@code 200}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/FilterColumn.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/FilterColumn.java
index 996b5463410..b95e3dfcaf9 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/FilterColumn.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/FilterColumn.java
@@ -52,10 +52,10 @@ public final class FilterColumn {
/**
* Creates a new {@link FilterColumn}.
*
- * <p>Valid values for the {@code sortDirection} are {@code #ASC}, {@code #DESC}</p>
+ * <p>Valid values for the {@code sortDirection} are {@code #ASC}, {@code #DESC}
*
* <p>When the @{see Filter} is persisted, a validation is made on the {@code family} and the {@code key}.
- * They should point to a valid column description.</p>
+ * They should point to a valid column description.
*
* @throws IllegalArgumentException if {@code sortDirection} is not valid
*/
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/PageDecoration.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/PageDecoration.java
index a83c7094518..73edeb1dc6f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/PageDecoration.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/PageDecoration.java
@@ -32,7 +32,7 @@ import org.sonar.api.server.ServerSide;
* <li><code>sidebar</code> : area in the sidebar between the menu and the sonar logo</li>
* </ul>
*
- * <p>Example of template: </p>
+ * <p>Example of template:
<pre>
<% content_for :script do %>
<script>alert('page loaded')</script>
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/RequiredMeasures.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/RequiredMeasures.java
index 65e514c63a0..1544dc44185 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/RequiredMeasures.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/RequiredMeasures.java
@@ -29,11 +29,11 @@ import java.lang.annotation.Target;
* Annotation used to specify which measures should be available on a snapshot to be able to display a view (page, tab, ...).
* It is possible to give a list of mandatory measures (= if one is not available, the view is not displayed) and/or a list of
* needed measures (only one of them needs to be available). The measures are specified using the metric keys.
- * </p>
+ *
* <p>
* Example: the DesignPage absolutely requires the "dsm" measure to be fed in order to be displayed, whatever the language.
* The class will define a <code>@RequiredMeasures(allOf={"dsm"})</code> annotation.
- * </p>
+ *
*
* @since 3.0
* @deprecated in 4.5. Not supported anymore in source viewer as Ruby on Rails is being dropped.
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/RubyRailsWidget.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/RubyRailsWidget.java
index db6be32eb72..b1f6aea1ee1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/RubyRailsWidget.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/RubyRailsWidget.java
@@ -21,7 +21,7 @@ package org.sonar.api.web;
/**
* Widget in project dashboard page. It's recommended to also extend AbstractRubyTemplate :
- * <p/>
+ * <br>
* <code>
* public class MyWidget extends AbstractRubyTemplate implements RubyRailsWidget {
* protected String getTemplatePath() {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/web/WidgetScope.java b/sonar-plugin-api/src/main/java/org/sonar/api/web/WidgetScope.java
index 3e79c84a05d..85220edb61d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/web/WidgetScope.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/web/WidgetScope.java
@@ -29,7 +29,7 @@ import java.lang.annotation.Target;
* global dashboards <code>(value = "GLOBAL")</code> or both <code>(value = {"PROJECT", "GLOBAL"})</code>.
*
* <p>Before version 3.1 all widget had a scope <code>"PROJECT"</code>. If a widget is not annotated with @WidgetScope,
- * then is is assumed project scoped.</p>
+ * then is is assumed project scoped.
*
* @since 3.1
*/