Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.3
    • Component/s: Plugin API
    • Labels:
      None
    • Edition:
    • Production Notes:
      Hide
      Minimal version of sonar-github required: 1.5.0.1271.
      Show
      Minimal version of sonar-github required: 1.5.0.1271.

      Description

      API that was deprecated before v5.6 should be removed.

      Some changes break latest versions of some plugins.

      There are 20 incompatible plugins, from which 5 are maintained by SonarSource:

      • SonarPython
      • SonarFlex and lua use sslr-squid-bridge to load rules from annotations, which tries to set effortToFixDescription. (P/R done to fix)
      • scm-jazzrtc, scm-clearcase, scm-mercurial, scmperforce and scmtfvc use transitive dependencies
      • sonargraphintegration, clover, android, checkstyle, sonargraph, PMD and xanitizer still use the old Sensor API.
      • codecrackercsharp uses ServerExtension
      • SonarCobol uses removed method in NewSymbolTable
      • SonarPLI uses removed method Checks#addAnnotatedChecks(Collection)
      • SonarRPG uses removed method NewHighlighting#highlight(int, int, TypeOfText)

      I've created tickets in the bug tracker of all these plugins.
      These are just the problems detected at first. Other problems might be found once these are fixed.

      Classes removed from the API:

      D	sonar-plugin-api/src/main/java/org/sonar/api/BatchExtension.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/Extension.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/ServerExtension.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractCpdMapping.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/AbstractSumChildrenDecorator.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/BuildBreaker.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/CheckProject.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/CoverageExtension.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/CpdMapping.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/Decorator.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorBarriers.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaContext.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaData.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/PostJob.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/Sensor.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/debt/DebtCharacteristic.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/debt/DebtModel.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/debt/DebtRemediationFunction.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/debt/internal/DefaultDebtModel.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorExecutionHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/DecoratorsPhaseHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/PostJobExecutionHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/PostJobsPhaseHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/ProjectAnalysisHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/SensorExecutionHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/batch/events/SensorsPhaseHandler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/component/Component.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/component/Module.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/component/SourceFile.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/component/mock/MockSourceFile.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/database/BaseIdentifiable.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/database/model/User.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/design/Dependency.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilter.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/issue/batch/IssueFilterChain.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/AverageFormula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/CoverageMeasuresBuilder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/Formula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaContext.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaData.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MeanAggregationFormula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/MultisetDistributionFormat.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/RangeDistributionBuilder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/RuleMeasure.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/SumChildDistributionFormula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/SumChildValuesFormula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/measures/WeightedMeanAggregationFormula.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/Directory.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/DuplicatedSourceException.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/Library.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/Resource.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/resources/ResourceUtils.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/source/Highlightable.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/source/Symbol.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/source/Symbolizable.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/user/UserFinder.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/utils/Semaphores.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/utils/StaxParser.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/utils/TimeProfiler.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/utils/XmlParserException.java
      D	sonar-plugin-api/src/main/java/org/sonar/api/utils/XpathParser.java
      D	sonar-plugin-api/src/main/java/org/sonar/graph/Edge.java
      

        Issue Links

          Activity

          Show
          julien.lancelot Julien Lancelot added a comment - Comment from Michael Gumowski on a removed ticket : sslr-squid-bridge should be updated and released with the fix first, then we will be able to bump version on analyzers relying on it: sonar-rpg: https://github.com/SonarSource/sonar-rpg/blob/master/pom.xml#L73 sonar-abap: https://github.com/SonarSource/sonar-abap/blob/master/pom.xml#L82 sonar-php: https://github.com/SonarSource/sonar-php/blob/master/pom.xml#L93 sonar-cobol: https://github.com/SonarSource/sonar-cobol/blob/master/pom.xml#L99 sonar-flex: https://github.com/SonarSource/sonar-flex/blob/master/pom.xml#L136 sonar-web: https://github.com/SonarSource/sonar-web/blob/master/sonar-web-plugin/pom.xml#L44 sonar-xml : https://github.com/SonarSource/sonar-xml/blob/master/pom.xml#L76 sonar-pli: https://github.com/SonarSource/sonar-pli/blob/master/pom.xml#L38 sonar-swift: https://github.com/SonarSource/sonar-swift/blob/master/pom.xml#L53 sonar-vb: https://github.com/SonarSource/sonar-vb/blob/master/pom.xml#L48 sonar-js: https://github.com/SonarSource/SonarJS/blob/master/pom.xml#L82 sonar-plsql: https://github.com/SonarSource/sonar-plsql/blob/master/pom.xml#L44 java-debugging-rules: https://github.com/SonarSource/java-debugging-rules/blob/master/pom.xml#L128
          Hide
          julien.lancelot Julien Lancelot added a comment -

          When this ticket will be done, we need to specify in the update center that the languages plugin that were using previous version of sslr-squid-bridge will not be compatible anymore with SonarQue 7.3 (or whatever will be the fix version of this ticket).

          Show
          julien.lancelot Julien Lancelot added a comment - When this ticket will be done, we need to specify in the update center that the languages plugin that were using previous version of sslr-squid-bridge will not be compatible anymore with SonarQue 7.3 (or whatever will be the fix version of this ticket).
          Hide
          michael.gumowski Michael Gumowski added a comment -

          sslr-squid-bridge version 2.7.0.377 should be clean, and all the plugins up-to-date.

          Show
          michael.gumowski Michael Gumowski added a comment - sslr-squid-bridge version 2.7.0.377 should be clean, and all the plugins up-to-date.
          Hide
          duarte.meneses Duarte Meneses added a comment - - edited

          If I'm not mistaken, these plugins still use sslr-squid-bridge 2.6.1:

          However, it seems like this does not prevent dropping API < 5.6

          Show
          duarte.meneses Duarte Meneses added a comment - - edited If I'm not mistaken, these plugins still use sslr-squid-bridge 2.6.1: https://github.com/SonarSource/sonar-cobol/blob/master/pom.xml#L99 https://github.com/SonarSource/SonarJS/blob/master/pom.xml#L82 https://github.com/SonarSource/java-debugging-rules/blob/master/pom.xml#L128 However, it seems like this does not prevent dropping API < 5.6
          Hide
          julien.henry Julien Henry added a comment -

          +1

          Show
          julien.henry Julien Henry added a comment - +1
          Hide
          julien.henry Julien Henry added a comment -

          There is a regression on Java code copy paste detection.

          Show
          julien.henry Julien Henry added a comment - There is a regression on Java code copy paste detection.
          Hide
          julien.henry Julien Henry added a comment -

          Java duplication should be fixed now.

          Show
          julien.henry Julien Henry added a comment - Java duplication should be fixed now.
          Hide
          ann.campbell.2 Ann Campbell added a comment - - edited

          Also apparently incompatible (server fails to start up):

          • Findbugs
          • CodeCracker C#
          • Guava Helper
          Show
          ann.campbell.2 Ann Campbell added a comment - - edited Also apparently incompatible (server fails to start up): Findbugs CodeCracker C# Guava Helper

            People

            • Assignee:
              julien.henry Julien Henry
              Reporter:
              duarte.meneses Duarte Meneses
            • Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Due:
                Created:
                Updated:
                Resolved: