diff options
Diffstat (limited to 'sonar-plugin-api/src/main')
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> * <project> * ... @@ -69,7 +69,7 @@ import static java.util.Objects.requireNonNull; * </project> * </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> * <packaging>sonar-plugin</packaging> * 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>*</code> and <code>**</code>, but not <code>?</code>. - * <p/> + * <br> * Examples: * <ul> * <li><code>**/*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 " -> ["one", "two", "three"]</li> + * <li>" one, two, three " -> ["one", "two", "three"]</li> + * <li>"one, , three" -> ["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) -> 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> * </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://<server>/<>controller path>/<action path>?<parameters></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") -> 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")) -> "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) -> 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) -> 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<String,String> mapOfStrings = KeyValueFormat.parse("hello=world;foo=bar"); @@ -48,7 +48,7 @@ import org.sonar.api.rules.RulePriority; * Map<String,MyClass> 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 -> "10ms"</li> + * <li>100 -> "100ms"</li> + * <li>10000 -> "10s"</li> + * <li>100000 -> "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/**/*.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.<id>.name" and * "dashboard.<id>.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.<id>.name".</p> + * <p>Its name can be retrieved using the i18n mechanism, using the keys "filter.<id>.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 */ |