Browse Source

SONAR-11465 API cleanup

tags/7.6
Julien HENRY 5 years ago
parent
commit
10e2a7a415
79 changed files with 72 additions and 176 deletions
  1. 1
    1
      sonar-core/src/main/java/org/sonar/core/component/DefaultResourceTypes.java
  2. 0
    2
      sonar-core/src/main/java/org/sonar/core/config/Logback.java
  3. 0
    2
      sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java
  4. 1
    3
      sonar-core/src/main/java/org/sonar/core/i18n/RuleI18nManager.java
  5. 1
    3
      sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java
  6. 1
    1
      sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java
  7. 1
    1
      sonar-core/src/main/java/org/sonar/core/platform/ComponentContainer.java
  8. 1
    1
      sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java
  9. 1
    1
      sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java
  10. 2
    2
      sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java
  11. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java
  12. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/SonarRuntime.java
  13. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/Startable.java
  14. 1
    3
      sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectBuilder.java
  15. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectReactor.java
  16. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java
  17. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java
  18. 4
    4
      sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java
  19. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Rules.java
  20. 1
    3
      sonar-plugin-api/src/main/java/org/sonar/api/batch/scm/ScmProvider.java
  21. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/internal/SensorStorage.java
  22. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/ce/ComputeEngineSide.java
  23. 2
    2
      sonar-plugin-api/src/main/java/org/sonar/api/config/Configuration.java
  24. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
  25. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinitions.java
  26. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java
  27. 0
    2
      sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java
  28. 1
    3
      sonar-plugin-api/src/main/java/org/sonar/api/i18n/RuleI18n.java
  29. 0
    4
      sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
  30. 1
    5
      sonar-plugin-api/src/main/java/org/sonar/api/issue/ProjectIssues.java
  31. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java
  32. 1
    4
      sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
  33. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java
  34. 1
    3
      sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java
  35. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/platform/Server.java
  36. 1
    5
      sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java
  37. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/resources/Languages.java
  38. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceTypeTree.java
  39. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/PathResolver.java
  40. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/server/ServerSide.java
  41. 0
    2
      sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java
  42. 2
    2
      sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java
  43. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java
  44. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/utils/TempFolder.java
  45. 1
    1
      sonar-plugin-api/src/main/java/org/sonar/api/utils/UriReader.java
  46. 0
    3
      sonar-scanner-engine/src/main/java/org/sonar/batch/bootstrapper/EnvironmentInformation.java
  47. 5
    5
      sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java
  48. 5
    5
      sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContextFactory.java
  49. 0
    6
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ExtensionMatcher.java
  50. 1
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/MetricProvider.java
  51. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/PluginInstaller.java
  52. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginJarExploder.java
  53. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginPredicate.java
  54. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerWsClientProvider.java
  55. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/deprecated/perspectives/PerspectiveBuilder.java
  56. 1
    1
      sonar-scanner-engine/src/main/java/org/sonar/scanner/extension/ScannerCoreExtensionsInstaller.java
  57. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssueCache.java
  58. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ignore/pattern/AbstractPatternInitializer.java
  59. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/IssueTransition.java
  60. 0
    4
      sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/ServerIssueRepository.java
  61. 0
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/ServerLineHashesLoader.java
  62. 1
    1
      sonar-scanner-engine/src/main/java/org/sonar/scanner/mediumtest/AnalysisObserver.java
  63. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/platform/DefaultServer.java
  64. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/postjob/PostJobOptimizer.java
  65. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java
  66. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/report/ReportPublisher.java
  67. 1
    4
      sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/ContextPropertiesCache.java
  68. 0
    4
      sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/language/LanguagesRepository.java
  69. 1
    10
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ModuleScanContainer.java
  70. 6
    1
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectScanContainer.java
  71. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ScanProperties.java
  72. 1
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/BranchConfigurationLoader.java
  73. 1
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/BranchParamsValidator.java
  74. 1
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranchesLoader.java
  75. 1
    3
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectPullRequestsLoader.java
  76. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/measure/MeasureCache.java
  77. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/storage/Storages.java
  78. 0
    2
      sonar-scanner-engine/src/main/java/org/sonar/scanner/storage/StoragesManager.java
  79. 1
    1
      sonar-scanner-engine/src/test/java/org/sonar/scanner/extension/ScannerCoreExtensionsInstallerTest.java

+ 1
- 1
sonar-core/src/main/java/org/sonar/core/component/DefaultResourceTypes.java View File

*/ */
package org.sonar.core.component; package org.sonar.core.component;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.ResourceType; import org.sonar.api.resources.ResourceType;

+ 0
- 2
sonar-core/src/main/java/org/sonar/core/config/Logback.java View File

import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonar.api.batch.ScannerSide;


/** /**
* Configure Logback * Configure Logback
* *
* @since 2.12 * @since 2.12
*/ */
@ScannerSide
public class Logback { public class Logback {


private Logback() { private Logback() {

+ 0
- 2
sonar-core/src/main/java/org/sonar/core/i18n/DefaultI18n.java View File

import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.picocontainer.Startable; import org.picocontainer.Startable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.i18n.I18n; import org.sonar.api.i18n.I18n;
import org.sonar.api.utils.SonarException; import org.sonar.api.utils.SonarException;
import org.sonar.api.utils.System2; import org.sonar.api.utils.System2;


import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.charset.StandardCharsets.UTF_8;


@ScannerSide
public class DefaultI18n implements I18n, Startable { public class DefaultI18n implements I18n, Startable {


private static final Logger LOG = Loggers.get(DefaultI18n.class); private static final Logger LOG = Loggers.get(DefaultI18n.class);

+ 1
- 3
sonar-core/src/main/java/org/sonar/core/i18n/RuleI18nManager.java View File

import java.util.Locale; import java.util.Locale;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.i18n.RuleI18n; import org.sonar.api.i18n.RuleI18n;
import org.sonar.api.rules.Rule; import org.sonar.api.rules.Rule;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


/** /**
* @deprecated in 4.1. Rules are not localized anymore. See http://jira.sonarsource.com/browse/SONAR-4885 * @deprecated in 4.1. Rules are not localized anymore. See http://jira.sonarsource.com/browse/SONAR-4885
*/ */
@Deprecated @Deprecated
@ScannerSide
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
public class RuleI18nManager implements RuleI18n { public class RuleI18nManager implements RuleI18n {

+ 1
- 3
sonar-core/src/main/java/org/sonar/core/issue/tracking/Tracker.java View File

import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.issue.Issue; import org.sonar.api.issue.Issue;


import static org.sonar.core.util.stream.MoreCollectors.toList; import static org.sonar.core.util.stream.MoreCollectors.toList;


@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ScannerSide @ScannerSide
public class Tracker<RAW extends Trackable, BASE extends Trackable> extends AbstractTracker<RAW, BASE> { public class Tracker<RAW extends Trackable, BASE extends Trackable> extends AbstractTracker<RAW, BASE> {



+ 1
- 1
sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java View File

import java.util.Set; import java.util.Set;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.measures.Metric; import org.sonar.api.measures.Metric;
import org.sonar.api.measures.Metrics; import org.sonar.api.measures.Metrics;

+ 1
- 1
sonar-core/src/main/java/org/sonar/core/platform/ComponentContainer.java View File

import org.picocontainer.PicoContainer; import org.picocontainer.PicoContainer;
import org.picocontainer.behaviors.OptInCaching; import org.picocontainer.behaviors.OptInCaching;
import org.picocontainer.monitors.NullComponentMonitor; import org.picocontainer.monitors.NullComponentMonitor;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.config.PropertyDefinitions; import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;

+ 1
- 1
sonar-core/src/main/java/org/sonar/core/platform/PluginClassloaderFactory.java View File

import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.classloader.ClassloaderBuilder; import org.sonar.classloader.ClassloaderBuilder;

+ 1
- 1
sonar-core/src/main/java/org/sonar/core/platform/PluginRepository.java View File



import java.util.Collection; import java.util.Collection;
import org.sonar.api.Plugin; import org.sonar.api.Plugin;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 2
- 2
sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java View File

/** /**
* Add an extension as : * Add an extension as :
* <ul> * <ul>
* <li>a Class that is annotated with {@link org.sonar.api.batch.ScannerSide}, {@link org.sonar.api.server.ServerSide}
* <li>a Class that is annotated with {@link org.sonar.api.scanner.ScannerSide}, {@link org.sonar.api.server.ServerSide}
* or {@link org.sonar.api.ce.ComputeEngineSide}. The extension will be instantiated once. Its dependencies are * or {@link org.sonar.api.ce.ComputeEngineSide}. The extension will be instantiated once. Its dependencies are
* injected through constructor parameters.</li> * injected through constructor parameters.</li>
* <li>an instance that is annotated with {@link org.sonar.api.batch.ScannerSide}, {@link org.sonar.api.server.ServerSide}
* <li>an instance that is annotated with {@link org.sonar.api.scanner.ScannerSide}, {@link org.sonar.api.server.ServerSide}
* or {@link org.sonar.api.ce.ComputeEngineSide}.</li> * or {@link org.sonar.api.ce.ComputeEngineSide}.</li>
* </ul> * </ul>
* Only a single component can be registered for a class. It's not allowed for example to register: * Only a single component can be registered for a class. It's not allowed for example to register:

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/SonarQubeVersion.java View File

package org.sonar.api; package org.sonar.api;


import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.Sensor;
import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/SonarRuntime.java View File



import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.Sensor;
import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/Startable.java View File

package org.sonar.api; package org.sonar.api;


/** /**
* An interface which is implemented by classes annotated with {@link org.sonar.api.batch.ScannerSide ScannerSide},
* An interface which is implemented by classes annotated with {@link org.sonar.api.scanner.ScannerSide ScannerSide},
* {@link org.sonar.api.server.ServerSide ServerSide} and/or {@link org.sonar.api.ce.ComputeEngineSide ComputeEngineSide} * {@link org.sonar.api.server.ServerSide ServerSide} and/or {@link org.sonar.api.ce.ComputeEngineSide ComputeEngineSide}
* (referred to below as "component") that can be started and stopped. * (referred to below as "component") that can be started and stopped.
* <p> * <p>

+ 1
- 3
sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectBuilder.java View File

package org.sonar.api.batch.bootstrap; package org.sonar.api.batch.bootstrap;


import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* This extension point allows to change project structure at runtime. It is executed once during task startup. * This extension point allows to change project structure at runtime. It is executed once during task startup.
* @since 2.9 * @since 2.9
*/ */
@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ExtensionPoint @ExtensionPoint
@Deprecated @Deprecated
public abstract class ProjectBuilder { public abstract class ProjectBuilder {

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectReactor.java View File

*/ */
package org.sonar.api.batch.bootstrap; package org.sonar.api.batch.bootstrap;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FileSystem.java View File

import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.SortedSet; import java.util.SortedSet;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* The {@link FileSystem} manages all the source files to be analyzed. * The {@link FileSystem} manages all the source files to be analyzed.

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java View File

import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.concurrent.ThreadSafe; import javax.annotation.concurrent.ThreadSafe;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* @since 4.5 * @since 4.5

+ 4
- 4
sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/ActiveRules.java View File

*/ */
package org.sonar.api.batch.rule; package org.sonar.api.batch.rule;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleKey;


import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import java.util.Collection; import java.util.Collection;


/** /**
* The rules that are activated on the current module. Quality profiles are
* The rules that are activated on the current project. Quality profiles are
* merged, so rules can relate to different repositories and languages. * merged, so rules can relate to different repositories and languages.
* <br> * <br>
* Use {@link org.sonar.api.batch.rule.internal.ActiveRulesBuilder} to instantiate * Use {@link org.sonar.api.batch.rule.internal.ActiveRulesBuilder} to instantiate
/** /**
* Find a {@link ActiveRule} by the associated rule key. <code>null</code> * Find a {@link ActiveRule} by the associated rule key. <code>null</code>
* is returned if the rule does not exist or if the rule is not activated * is returned if the rule does not exist or if the rule is not activated
* on any Quality profile associated with the module.
* on any Quality profile associated with the project.
*/ */
@CheckForNull @CheckForNull
ActiveRule find(RuleKey ruleKey); ActiveRule find(RuleKey ruleKey);
/** /**
* Find a {@link ActiveRule} by the associated internal key. <code>null</code> * Find a {@link ActiveRule} by the associated internal key. <code>null</code>
* is returned if the rule does not exist or if the rule is not activated * is returned if the rule does not exist or if the rule is not activated
* on any Quality profile associated with the module.
* on any Quality profile associated with the project.
*/ */
@CheckForNull @CheckForNull
ActiveRule findByInternalKey(String repository, String internalKey); ActiveRule findByInternalKey(String repository, String internalKey);

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/batch/rule/Rules.java View File

*/ */
package org.sonar.api.batch.rule; package org.sonar.api.batch.rule;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleKey;


import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;

+ 1
- 3
sonar-plugin-api/src/main/java/org/sonar/api/batch/scm/ScmProvider.java View File

import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* @since 5.0 * @since 5.0
*/ */
@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ExtensionPoint @ExtensionPoint
public abstract class ScmProvider { public abstract class ScmProvider {



+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/internal/SensorStorage.java View File

*/ */
package org.sonar.api.batch.sensor.internal; package org.sonar.api.batch.sensor.internal;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.batch.sensor.code.internal.DefaultSignificantCode; import org.sonar.api.batch.sensor.code.internal.DefaultSignificantCode;
import org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage; import org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage;
import org.sonar.api.batch.sensor.cpd.internal.DefaultCpdTokens; import org.sonar.api.batch.sensor.cpd.internal.DefaultCpdTokens;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/ce/ComputeEngineSide.java View File

import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* Same as {@link ScannerSide} but for components for the Compute Engine Server. * Same as {@link ScannerSide} but for components for the Compute Engine Server.

+ 2
- 2
sonar-plugin-api/src/main/java/org/sonar/api/config/Configuration.java View File

package org.sonar.api.config; package org.sonar.api.config;


import java.util.Optional; import java.util.Optional;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.config.internal.MapSettings; import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
/** /**
* Component to get effective configuration. Values of properties depend on the runtime environment: * Component to get effective configuration. Values of properties depend on the runtime environment:
* <ul> * <ul>
* <li>immutable project or module configuration in scanner.</li>
* <li>immutable project configuration in scanner.</li>
* <li>global configuration in web server. It does not allow to get the settings overridden on projects.</li> * <li>global configuration in web server. It does not allow to get the settings overridden on projects.</li>
* <li>project configuration in Compute Engine.</li> * <li>project configuration in Compute Engine.</li>
* </ul> * </ul>

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java View File

import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.Property; import org.sonar.api.Property;
import org.sonar.api.PropertyType; import org.sonar.api.PropertyType;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Qualifiers;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinitions.java View File

import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.Properties; import org.sonar.api.Properties;
import org.sonar.api.Property; import org.sonar.api.Property;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.AnnotationUtils; import org.sonar.api.utils.AnnotationUtils;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/config/Settings.java View File

import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.DateUtils;

+ 0
- 2
sonar-plugin-api/src/main/java/org/sonar/api/i18n/I18n.java View File

import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


* *
* @since 2.10 * @since 2.10
*/ */
@ScannerSide
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
public interface I18n { public interface I18n {

+ 1
- 3
sonar-plugin-api/src/main/java/org/sonar/api/i18n/RuleI18n.java View File



import java.util.Locale; import java.util.Locale;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.rules.Rule;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.rules.Rule;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


/** /**
* @deprecated in 4.1. Rules are not localized anymore. See http://jira.sonarsource.com/browse/SONAR-4885 * @deprecated in 4.1. Rules are not localized anymore. See http://jira.sonarsource.com/browse/SONAR-4885
*/ */
@Deprecated @Deprecated
@ScannerSide
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
public interface RuleI18n { public interface RuleI18n {

+ 0
- 4
sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java View File

import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleKey;
import org.sonar.api.utils.Duration; import org.sonar.api.utils.Duration;




/** /**
* Non-null list of comments, ordered by chronological order. * Non-null list of comments, ordered by chronological order.
* <br>
* IMPORTANT: existing comments are not loaded when this method is called when analyzing project
* (from {@link ScannerSide}).
* *
* @deprecated since 7.2, comments are not more available * @deprecated since 7.2, comments are not more available
*/ */

+ 1
- 5
sonar-plugin-api/src/main/java/org/sonar/api/issue/ProjectIssues.java View File

*/ */
package org.sonar.api.issue; package org.sonar.api.issue;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.InstantiationStrategy;

import static org.sonar.api.batch.InstantiationStrategy.PER_BATCH;
import org.sonar.api.scanner.ScannerSide;


/** /**
* Used by batch components to get all project issues. * Used by batch components to get all project issues.
* @since 4.0 * @since 4.0
* @deprecated since 7.3 preview mode is deprecated since 6.6 * @deprecated since 7.3 preview mode is deprecated since 6.6
*/ */
@InstantiationStrategy(PER_BATCH)
@ScannerSide @ScannerSide
@Deprecated @Deprecated
public interface ProjectIssues { public interface ProjectIssues {

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/measures/FileLinesContextFactory.java View File

*/ */
package org.sonar.api.measures; package org.sonar.api.measures;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile;


/** /**

+ 1
- 4
sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java View File

import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle; import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.firstNonNull;


/** /**
* Used to define a metric in a plugin. Should be used with {@link Metrics} extension point. * Used to define a metric in a plugin. Should be used with {@link Metrics} extension point.
* Should no more be used on scanner side. Use {@link org.sonar.api.batch.measure.Metric} instead.
*/ */
@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
public class Metric<G extends Serializable> implements Serializable, org.sonar.api.batch.measure.Metric<G> { public class Metric<G extends Serializable> implements Serializable, org.sonar.api.batch.measure.Metric<G> {

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java View File

import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 1
- 3
sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java View File



import java.util.List; import java.util.List;
import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


/** /**
* @since 1.10 * @since 1.10
*/ */
@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
@ExtensionPoint @ExtensionPoint

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/platform/Server.java View File



import java.io.File; import java.io.File;
import java.util.Date; import java.util.Date;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 1
- 5
sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java View File

package org.sonar.api.resources; package org.sonar.api.resources;


import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonarsource.api.sonarlint.SonarLintSide; import org.sonarsource.api.sonarlint.SonarLintSide;


/** /**
* The extension point to define a new language * The extension point to define a new language
* <br>
* Instantiation strategy changed to PER_BATCH in version 4.2.
* *
* @since 1.10 * @since 1.10
*/ */
@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ServerSide @ServerSide
@SonarLintSide @SonarLintSide
@ComputeEngineSide @ComputeEngineSide

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/resources/Languages.java View File

import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.ArrayUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Logger;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceTypeTree.java View File

import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/PathResolver.java View File

import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.utils.PathUtils; import org.sonar.api.utils.PathUtils;


import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.joining;

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/server/ServerSide.java View File

import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


/** /**
* Same as {@link ScannerSide} but for server-side components. * Same as {@link ScannerSide} but for server-side components.

+ 0
- 2
sonar-plugin-api/src/main/java/org/sonar/api/utils/Durations.java View File

package org.sonar.api.utils; package org.sonar.api.utils;


import java.util.Locale; import java.util.Locale;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


/** /**
* @since 4.3 * @since 4.3
*/ */
@ScannerSide
@ServerSide @ServerSide
@ComputeEngineSide @ComputeEngineSide
public class Durations { public class Durations {

+ 2
- 2
sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java View File

*/ */
package org.sonar.api.utils; package org.sonar.api.utils;


import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;


import java.io.File; import java.io.File;


/** /**
* This component is available in IoC container, so it should be injected through * This component is available in IoC container, so it should be injected through
* a constructor parameter. It is available in both batch and server.
* a constructor parameter. It is available in both scanner and server.
*/ */
@ScannerSide @ScannerSide
@ServerSide @ServerSide

+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/utils/System2.java View File

import java.util.TimeZone; import java.util.TimeZone;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.apache.commons.lang.SystemUtils; import org.apache.commons.lang.SystemUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/utils/TempFolder.java View File



import java.io.File; import java.io.File;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 1
- 1
sonar-plugin-api/src/main/java/org/sonar/api/utils/UriReader.java View File

import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;



+ 0
- 3
sonar-scanner-engine/src/main/java/org/sonar/batch/bootstrapper/EnvironmentInformation.java View File

*/ */
package org.sonar.batch.bootstrapper; package org.sonar.batch.bootstrapper;


import org.sonar.api.batch.ScannerSide;

/** /**
* Describes execution environment. * Describes execution environment.
* *
* @since 2.6 * @since 2.6
*/ */
@ScannerSide
public class EnvironmentInformation { public class EnvironmentInformation {


private String key; private String key;

+ 5
- 5
sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java View File

import java.util.Map.Entry; import java.util.Map.Entry;
import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.measure.MetricFinder;
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.internal.SensorStorage;
import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure; import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure;
import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.FileLinesContext; import org.sonar.api.measures.FileLinesContext;
import static java.util.stream.Collectors.toMap; import static java.util.stream.Collectors.toMap;


public class DefaultFileLinesContext implements FileLinesContext { public class DefaultFileLinesContext implements FileLinesContext {
private final SensorContext context;
private final InputFile inputFile; private final InputFile inputFile;
private final MetricFinder metricFinder; private final MetricFinder metricFinder;
private final MeasureCache measureCache; private final MeasureCache measureCache;
* metric key -> line -> value * metric key -> line -> value
*/ */
private final Map<String, Map<Integer, Object>> map = new HashMap<>(); private final Map<String, Map<Integer, Object>> map = new HashMap<>();
private final SensorStorage sensorStorage;


public DefaultFileLinesContext(SensorContext context, InputFile inputFile, MetricFinder metricFinder, MeasureCache measureCache) {
this.context = context;
public DefaultFileLinesContext(SensorStorage sensorStorage, InputFile inputFile, MetricFinder metricFinder, MeasureCache measureCache) {
this.sensorStorage = sensorStorage;
this.inputFile = inputFile; this.inputFile = inputFile;
this.metricFinder = metricFinder; this.metricFinder = metricFinder;
this.measureCache = measureCache; this.measureCache = measureCache;
Map<Integer, Object> lines = entry.getValue(); Map<Integer, Object> lines = entry.getValue();
if (shouldSave(lines)) { if (shouldSave(lines)) {
String data = KeyValueFormat.format(optimizeStorage(metricKey, lines)); String data = KeyValueFormat.format(optimizeStorage(metricKey, lines));
context.newMeasure()
new DefaultMeasure<String>(sensorStorage)
.on(inputFile) .on(inputFile)
.forMetric(metricFinder.findByKey(metricKey)) .forMetric(metricFinder.findByKey(metricKey))
.withValue(data) .withValue(data)

+ 5
- 5
sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContextFactory.java View File

import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.measure.MetricFinder;
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.internal.SensorStorage;
import org.sonar.api.measures.FileLinesContext; import org.sonar.api.measures.FileLinesContext;
import org.sonar.api.measures.FileLinesContextFactory; import org.sonar.api.measures.FileLinesContextFactory;
import org.sonar.scanner.scan.measure.MeasureCache; import org.sonar.scanner.scan.measure.MeasureCache;
@Immutable @Immutable
public class DefaultFileLinesContextFactory implements FileLinesContextFactory { public class DefaultFileLinesContextFactory implements FileLinesContextFactory {


private final SensorContext sensorContext;
private final SensorStorage sensorStorage;
private final MetricFinder metricFinder; private final MetricFinder metricFinder;
private final MeasureCache measureCache; private final MeasureCache measureCache;


public DefaultFileLinesContextFactory(SensorContext sensorContext, MetricFinder metricFinder, MeasureCache measureCache) {
this.sensorContext = sensorContext;
public DefaultFileLinesContextFactory(SensorStorage sensorStorage, MetricFinder metricFinder, MeasureCache measureCache) {
this.sensorStorage = sensorStorage;
this.metricFinder = metricFinder; this.metricFinder = metricFinder;
this.measureCache = measureCache; this.measureCache = measureCache;
} }


@Override @Override
public FileLinesContext createFor(InputFile inputFile) { public FileLinesContext createFor(InputFile inputFile) {
return new DefaultFileLinesContext(sensorContext, inputFile, metricFinder, measureCache);
return new DefaultFileLinesContext(sensorStorage, inputFile, metricFinder, measureCache);
} }


} }

+ 0
- 6
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ExtensionMatcher.java View File

*/ */
package org.sonar.scanner.bootstrap; package org.sonar.scanner.bootstrap;


import org.sonar.api.batch.ScannerSide;

/**
* @since 3.6
*/
@ScannerSide
public interface ExtensionMatcher { public interface ExtensionMatcher {
boolean accept(Object extension); boolean accept(Object extension);
} }

+ 1
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/MetricProvider.java View File

import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import java.util.List; import java.util.List;
import org.sonar.api.ExtensionProvider; import org.sonar.api.ExtensionProvider;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Metric; import org.sonar.api.measures.Metric;
import org.sonar.api.measures.Metrics; import org.sonar.api.measures.Metrics;


@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
public class MetricProvider extends ExtensionProvider { public class MetricProvider extends ExtensionProvider {


private Metrics[] factories; private Metrics[] factories;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/PluginInstaller.java View File



import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.sonar.api.batch.ScannerSide;


@ScannerSide
public interface PluginInstaller { public interface PluginInstaller {


/** /**

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginJarExploder.java View File

import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.utils.ZipUtils; import org.sonar.api.utils.ZipUtils;
import org.sonar.core.platform.ExplodedPlugin; import org.sonar.core.platform.ExplodedPlugin;
import org.sonar.core.platform.PluginInfo; import org.sonar.core.platform.PluginInfo;


import static org.sonar.core.util.FileUtils.deleteQuietly; import static org.sonar.core.util.FileUtils.deleteQuietly;


@ScannerSide
public class ScannerPluginJarExploder extends PluginJarExploder { public class ScannerPluginJarExploder extends PluginJarExploder {


private final PluginFiles pluginFiles; private final PluginFiles pluginFiles;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginPredicate.java View File

import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.config.Configuration; import org.sonar.api.config.Configuration;
import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers; import org.sonar.api.utils.log.Loggers;
/** /**
* Filters the plugins to be enabled during analysis * Filters the plugins to be enabled during analysis
*/ */
@ScannerSide
public class ScannerPluginPredicate implements Predicate<String> { public class ScannerPluginPredicate implements Predicate<String> {


private static final Logger LOG = Loggers.get(ScannerPluginPredicate.class); private static final Logger LOG = Loggers.get(ScannerPluginPredicate.class);

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerWsClientProvider.java View File



import org.picocontainer.injectors.ProviderAdapter; import org.picocontainer.injectors.ProviderAdapter;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.utils.System2; import org.sonar.api.utils.System2;
import org.sonar.batch.bootstrapper.EnvironmentInformation; import org.sonar.batch.bootstrapper.EnvironmentInformation;
import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.HttpConnector;
import static java.lang.String.valueOf; import static java.lang.String.valueOf;
import static org.apache.commons.lang.StringUtils.defaultIfBlank; import static org.apache.commons.lang.StringUtils.defaultIfBlank;


@ScannerSide
public class ScannerWsClientProvider extends ProviderAdapter { public class ScannerWsClientProvider extends ProviderAdapter {


static final int CONNECT_TIMEOUT_MS = 5_000; static final int CONNECT_TIMEOUT_MS = 5_000;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/deprecated/perspectives/PerspectiveBuilder.java View File

package org.sonar.scanner.deprecated.perspectives; package org.sonar.scanner.deprecated.perspectives;


import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.InputComponent; import org.sonar.api.batch.fs.InputComponent;
import org.sonar.api.component.Perspective; import org.sonar.api.component.Perspective;


@ScannerSide
public abstract class PerspectiveBuilder<T extends Perspective> { public abstract class PerspectiveBuilder<T extends Perspective> {


private final Class<T> perspectiveClass; private final Class<T> perspectiveClass;

+ 1
- 1
sonar-scanner-engine/src/main/java/org/sonar/scanner/extension/ScannerCoreExtensionsInstaller.java View File

package org.sonar.scanner.extension; package org.sonar.scanner.extension;


import org.sonar.api.SonarRuntime; import org.sonar.api.SonarRuntime;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.core.extension.CoreExtensionRepository; import org.sonar.core.extension.CoreExtensionRepository;
import org.sonar.core.extension.CoreExtensionsInstaller; import org.sonar.core.extension.CoreExtensionsInstaller;



+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssueCache.java View File

package org.sonar.scanner.issue; package org.sonar.scanner.issue;


import java.util.Collection; import java.util.Collection;
import org.sonar.api.batch.ScannerSide;
import org.sonar.scanner.issue.tracking.TrackedIssue; import org.sonar.scanner.issue.tracking.TrackedIssue;
import org.sonar.scanner.storage.Storage; import org.sonar.scanner.storage.Storage;
import org.sonar.scanner.storage.Storages; import org.sonar.scanner.storage.Storages;
/** /**
* Shared issues among all project modules * Shared issues among all project modules
*/ */
@ScannerSide
public class IssueCache { public class IssueCache {


// component key -> issue key -> issue // component key -> issue key -> issue

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ignore/pattern/AbstractPatternInitializer.java View File

import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.config.Configuration; import org.sonar.api.config.Configuration;


import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.firstNonNull;


@ScannerSide
public abstract class AbstractPatternInitializer { public abstract class AbstractPatternInitializer {
private Configuration settings; private Configuration settings;
private List<IssuePattern> multicriteriaPatterns; private List<IssuePattern> multicriteriaPatterns;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/IssueTransition.java View File

import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.InputComponent; import org.sonar.api.batch.fs.InputComponent;
import org.sonar.api.batch.fs.internal.DefaultInputComponent; import org.sonar.api.batch.fs.internal.DefaultInputComponent;
import org.sonar.core.util.CloseableIterator; import org.sonar.core.util.CloseableIterator;
import org.sonar.scanner.scan.filesystem.InputComponentStore; import org.sonar.scanner.scan.filesystem.InputComponentStore;
import org.sonar.scanner.util.ProgressReport; import org.sonar.scanner.util.ProgressReport;


@ScannerSide
public class IssueTransition { public class IssueTransition {
private final IssueCache issueCache; private final IssueCache issueCache;
private final InputComponentStore inputComponentStore; private final InputComponentStore inputComponentStore;

+ 0
- 4
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/ServerIssueRepository.java View File

*/ */
package org.sonar.scanner.issue.tracking; package org.sonar.scanner.issue.tracking;


import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.InputComponent; import org.sonar.api.batch.fs.InputComponent;
import org.sonar.api.batch.fs.internal.AbstractProjectOrModule; import org.sonar.api.batch.fs.internal.AbstractProjectOrModule;
import org.sonar.api.batch.fs.internal.DefaultInputComponent; import org.sonar.api.batch.fs.internal.DefaultInputComponent;
import org.sonar.scanner.storage.Storage; import org.sonar.scanner.storage.Storage;
import org.sonar.scanner.storage.Storages; import org.sonar.scanner.storage.Storages;


@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ScannerSide
public class ServerIssueRepository { public class ServerIssueRepository {


private static final Logger LOG = Loggers.get(ServerIssueRepository.class); private static final Logger LOG = Loggers.get(ServerIssueRepository.class);

+ 0
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/tracking/ServerLineHashesLoader.java View File

*/ */
package org.sonar.scanner.issue.tracking; package org.sonar.scanner.issue.tracking;


import org.sonar.api.batch.ScannerSide;

@ScannerSide
public interface ServerLineHashesLoader { public interface ServerLineHashesLoader {


String[] getLineHashes(String fileKey); String[] getLineHashes(String fileKey);

+ 1
- 1
sonar-scanner-engine/src/main/java/org/sonar/scanner/mediumtest/AnalysisObserver.java View File

package org.sonar.scanner.mediumtest; package org.sonar.scanner.mediumtest;


import org.sonar.api.ExtensionPoint; import org.sonar.api.ExtensionPoint;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.scanner.scan.ProjectScanContainer; import org.sonar.scanner.scan.ProjectScanContainer;


@ScannerSide @ScannerSide

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/platform/DefaultServer.java View File

import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.SonarRuntime; import org.sonar.api.SonarRuntime;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.config.Configuration; import org.sonar.api.config.Configuration;
import org.sonar.api.platform.Server; import org.sonar.api.platform.Server;
import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.DateUtils;


import static org.apache.commons.lang.StringUtils.trimToEmpty; import static org.apache.commons.lang.StringUtils.trimToEmpty;


@ScannerSide
public class DefaultServer extends Server { public class DefaultServer extends Server {


private final Configuration settings; private final Configuration settings;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/postjob/PostJobOptimizer.java View File



import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.postjob.internal.DefaultPostJobDescriptor; import org.sonar.api.batch.postjob.internal.DefaultPostJobDescriptor;
import org.sonar.api.config.Configuration; import org.sonar.api.config.Configuration;


@ScannerSide
public class PostJobOptimizer { public class PostJobOptimizer {


private static final Logger LOG = LoggerFactory.getLogger(PostJobOptimizer.class); private static final Logger LOG = LoggerFactory.getLogger(PostJobOptimizer.class);

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java View File

import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.sonar.api.CoreProperties; import org.sonar.api.CoreProperties;
import org.sonar.api.batch.AnalysisMode; import org.sonar.api.batch.AnalysisMode;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.internal.AbstractProjectOrModule; import org.sonar.api.batch.fs.internal.AbstractProjectOrModule;
import org.sonar.api.batch.fs.internal.DefaultInputModule; import org.sonar.api.batch.fs.internal.DefaultInputModule;
import org.sonar.api.batch.fs.internal.InputModuleHierarchy; import org.sonar.api.batch.fs.internal.InputModuleHierarchy;


import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;


@ScannerSide
public class AnalysisContextReportPublisher { public class AnalysisContextReportPublisher {


private static final String KEY_VALUE_FORMAT = " - %s=%s"; private static final String KEY_VALUE_FORMAT = " - %s=%s";

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/report/ReportPublisher.java View File

import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.picocontainer.Startable; import org.picocontainer.Startable;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.internal.InputModuleHierarchy; import org.sonar.api.batch.fs.internal.InputModuleHierarchy;
import org.sonar.api.platform.Server; import org.sonar.api.platform.Server;
import org.sonar.api.utils.MessageException; import org.sonar.api.utils.MessageException;
import static org.sonar.scanner.scan.branch.BranchType.PULL_REQUEST; import static org.sonar.scanner.scan.branch.BranchType.PULL_REQUEST;
import static org.sonar.scanner.scan.branch.BranchType.SHORT; import static org.sonar.scanner.scan.branch.BranchType.SHORT;


@ScannerSide
public class ReportPublisher implements Startable { public class ReportPublisher implements Startable {


private static final Logger LOG = Loggers.get(ReportPublisher.class); private static final Logger LOG = Loggers.get(ReportPublisher.class);

+ 1
- 4
sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/ContextPropertiesCache.java View File

*/ */
package org.sonar.scanner.repository; package org.sonar.scanner.repository;


import static com.google.common.base.Preconditions.checkArgument;

import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;


import org.sonar.api.batch.ScannerSide;
import static com.google.common.base.Preconditions.checkArgument;


@ScannerSide
public class ContextPropertiesCache { public class ContextPropertiesCache {


private final Map<String, String> props = new HashMap<>(); private final Map<String, String> props = new HashMap<>();

+ 0
- 4
sonar-scanner-engine/src/main/java/org/sonar/scanner/repository/language/LanguagesRepository.java View File

package org.sonar.scanner.repository.language; package org.sonar.scanner.repository.language;


import java.util.Collection; import java.util.Collection;

import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;


import org.sonar.api.batch.ScannerSide;

/** /**
* Languages repository * Languages repository
* @since 4.4 * @since 4.4
*/ */
@ScannerSide
@Immutable @Immutable
public interface LanguagesRepository { public interface LanguagesRepository {



+ 1
- 10
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ModuleScanContainer.java View File

import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonar.api.batch.fs.internal.DefaultInputModule; import org.sonar.api.batch.fs.internal.DefaultInputModule;
import org.sonar.api.scan.filesystem.FileExclusions; import org.sonar.api.scan.filesystem.FileExclusions;
import org.sonar.core.extension.CoreExtensionsInstaller;
import org.sonar.core.platform.ComponentContainer; import org.sonar.core.platform.ComponentContainer;
import org.sonar.scanner.DefaultFileLinesContextFactory;
import org.sonar.scanner.bootstrap.ExtensionInstaller; import org.sonar.scanner.bootstrap.ExtensionInstaller;
import org.sonar.scanner.bootstrap.SensorExtensionDictionnary; import org.sonar.scanner.bootstrap.SensorExtensionDictionnary;
import org.sonar.scanner.deprecated.perspectives.ScannerPerspectives; import org.sonar.scanner.deprecated.perspectives.ScannerPerspectives;
import org.sonar.scanner.scan.filesystem.DefaultModuleFileSystem; import org.sonar.scanner.scan.filesystem.DefaultModuleFileSystem;
import org.sonar.scanner.scan.filesystem.ModuleInputComponentStore; import org.sonar.scanner.scan.filesystem.ModuleInputComponentStore;
import org.sonar.scanner.sensor.DefaultSensorContext; import org.sonar.scanner.sensor.DefaultSensorContext;
import org.sonar.scanner.sensor.DefaultSensorStorage;
import org.sonar.scanner.sensor.SensorOptimizer; import org.sonar.scanner.sensor.SensorOptimizer;


import static org.sonar.api.batch.InstantiationStrategy.PER_PROJECT; import static org.sonar.api.batch.InstantiationStrategy.PER_PROJECT;
import static org.sonar.core.extension.CoreExtensionsInstaller.noExtensionFilter;
import static org.sonar.scanner.bootstrap.ExtensionUtils.isDeprecatedScannerSide; import static org.sonar.scanner.bootstrap.ExtensionUtils.isDeprecatedScannerSide;
import static org.sonar.scanner.bootstrap.ExtensionUtils.isInstantiationStrategy; import static org.sonar.scanner.bootstrap.ExtensionUtils.isInstantiationStrategy;




SensorOptimizer.class, SensorOptimizer.class,


DefaultSensorStorage.class,
DefaultSensorContext.class, DefaultSensorContext.class,
SensorExtensionDictionnary.class, SensorExtensionDictionnary.class,


// Perspectives // Perspectives
ScannerPerspectives.class,

DefaultFileLinesContextFactory.class);
ScannerPerspectives.class);
} }


private void addExtensions() { private void addExtensions() {
CoreExtensionsInstaller coreExtensionsInstaller = getComponentByType(CoreExtensionsInstaller.class);
coreExtensionsInstaller.install(this, noExtensionFilter(), t -> isInstantiationStrategy(t, PER_PROJECT));
ExtensionInstaller pluginInstaller = getComponentByType(ExtensionInstaller.class); ExtensionInstaller pluginInstaller = getComponentByType(ExtensionInstaller.class);
pluginInstaller.install(this, e -> isDeprecatedScannerSide(e) && isInstantiationStrategy(e, PER_PROJECT)); pluginInstaller.install(this, e -> isDeprecatedScannerSide(e) && isInstantiationStrategy(e, PER_PROJECT));
} }

+ 6
- 1
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectScanContainer.java View File

import org.sonar.core.extension.CoreExtensionsInstaller; import org.sonar.core.extension.CoreExtensionsInstaller;
import org.sonar.core.metric.ScannerMetrics; import org.sonar.core.metric.ScannerMetrics;
import org.sonar.core.platform.ComponentContainer; import org.sonar.core.platform.ComponentContainer;
import org.sonar.scanner.DefaultFileLinesContextFactory;
import org.sonar.scanner.ProjectAnalysisInfo; import org.sonar.scanner.ProjectAnalysisInfo;
import org.sonar.scanner.analysis.AnalysisTempFolderProvider; import org.sonar.scanner.analysis.AnalysisTempFolderProvider;
import org.sonar.scanner.analysis.DefaultAnalysisMode; import org.sonar.scanner.analysis.DefaultAnalysisMode;
import org.sonar.scanner.scm.ScmChangedFilesProvider; import org.sonar.scanner.scm.ScmChangedFilesProvider;
import org.sonar.scanner.scm.ScmConfiguration; import org.sonar.scanner.scm.ScmConfiguration;
import org.sonar.scanner.scm.ScmPublisher; import org.sonar.scanner.scm.ScmPublisher;
import org.sonar.scanner.sensor.DefaultSensorStorage;
import org.sonar.scanner.storage.Storages; import org.sonar.scanner.storage.Storages;


import static org.sonar.api.batch.InstantiationStrategy.PER_BATCH; import static org.sonar.api.batch.InstantiationStrategy.PER_BATCH;
IssueFilters.class, IssueFilters.class,
IssuePublisher.class, IssuePublisher.class,



// metrics // metrics
DefaultMetricFinder.class, DefaultMetricFinder.class,


ScmConfiguration.class, ScmConfiguration.class,
ScmPublisher.class, ScmPublisher.class,


// Sensors
DefaultSensorStorage.class,
DefaultFileLinesContextFactory.class,

// Filesystem // Filesystem
DefaultProjectFileSystem.class, DefaultProjectFileSystem.class,



+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ScanProperties.java View File

import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Optional; import java.util.Optional;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.fs.internal.DefaultInputProject; import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.api.config.Configuration; import org.sonar.api.config.Configuration;
import org.sonar.api.utils.MessageException; import org.sonar.api.utils.MessageException;
/** /**
* Properties that can be passed to the scanners and are not exposed in SonarQube. * Properties that can be passed to the scanners and are not exposed in SonarQube.
*/ */
@ScannerSide
public class ScanProperties { public class ScanProperties {
public static final String METADATA_FILE_PATH_KEY = "sonar.scanner.metadataFilePath"; public static final String METADATA_FILE_PATH_KEY = "sonar.scanner.metadataFilePath";
public static final String KEEP_REPORT_PROP_KEY = "sonar.scanner.keepReport"; public static final String KEEP_REPORT_PROP_KEY = "sonar.scanner.keepReport";

+ 1
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/BranchConfigurationLoader.java View File



import java.util.Map; import java.util.Map;
import java.util.function.Supplier; import java.util.function.Supplier;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
public interface BranchConfigurationLoader { public interface BranchConfigurationLoader {
BranchConfiguration load(Map<String, String> localSettings, Supplier<Map<String, String>> remoteSettingsSupplier, ProjectBranches branches, ProjectPullRequests pullRequests); BranchConfiguration load(Map<String, String> localSettings, Supplier<Map<String, String>> remoteSettingsSupplier, ProjectBranches branches, ProjectPullRequests pullRequests);
} }

+ 1
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/BranchParamsValidator.java View File



import java.util.List; import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
public interface BranchParamsValidator { public interface BranchParamsValidator {
void validate(List<String> validationMessages, @Nullable String deprecatedBranchName); void validate(List<String> validationMessages, @Nullable String deprecatedBranchName);
} }

+ 1
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranchesLoader.java View File

*/ */
package org.sonar.scanner.scan.branch; package org.sonar.scanner.scan.branch;


import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
public interface ProjectBranchesLoader { public interface ProjectBranchesLoader {


/** /**

+ 1
- 3
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectPullRequestsLoader.java View File

*/ */
package org.sonar.scanner.scan.branch; package org.sonar.scanner.scan.branch;


import org.sonar.api.batch.InstantiationStrategy;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;


@ScannerSide @ScannerSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
public interface ProjectPullRequestsLoader { public interface ProjectPullRequestsLoader {


/** /**

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/measure/MeasureCache.java View File



import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.measure.MetricFinder;
import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure; import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure;
import org.sonar.scanner.storage.Storage; import org.sonar.scanner.storage.Storage;
/** /**
* Cache of all measures. This cache is shared amongst all project modules. * Cache of all measures. This cache is shared amongst all project modules.
*/ */
@ScannerSide
public class MeasureCache { public class MeasureCache {


private final Storage<DefaultMeasure<?>> cache; private final Storage<DefaultMeasure<?>> cache;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/storage/Storages.java View File

import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.picocontainer.Startable; import org.picocontainer.Startable;
import org.sonar.api.batch.ScannerSide;


@ScannerSide
public class Storages implements Startable { public class Storages implements Startable {
private final Map<String, Exchange> cacheMap = new HashMap<>(); private final Map<String, Exchange> cacheMap = new HashMap<>();
private Persistit persistit; private Persistit persistit;

+ 0
- 2
sonar-scanner-engine/src/main/java/org/sonar/scanner/storage/StoragesManager.java View File

import java.util.Properties; import java.util.Properties;
import org.picocontainer.Startable; import org.picocontainer.Startable;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.utils.TempFolder; import org.sonar.api.utils.TempFolder;


import static org.sonar.core.util.FileUtils.deleteQuietly; import static org.sonar.core.util.FileUtils.deleteQuietly;
* *
* @since 3.6 * @since 3.6
*/ */
@ScannerSide
public class StoragesManager implements Startable { public class StoragesManager implements Startable {
private File tempDir; private File tempDir;
private Persistit persistit; private Persistit persistit;

+ 1
- 1
sonar-scanner-engine/src/test/java/org/sonar/scanner/extension/ScannerCoreExtensionsInstallerTest.java View File

import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.Test; import org.junit.Test;
import org.sonar.api.SonarRuntime; import org.sonar.api.SonarRuntime;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.scanner.ScannerSide;
import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.core.extension.CoreExtension; import org.sonar.core.extension.CoreExtension;

Loading…
Cancel
Save