Read the announcement on ZPA's blog
SonarQube compatibility
This release is compatible with SonarQube 9.9 LTA Community Edition and newer. However, comprehensive testing and validation have been conducted only on SonarQube 9.9 CE, 10.6 CE, and 10.7 CE. While compatibility is expected for other versions within this range, the full extent of functionality has been assured only for the tested versions.
Additionally, please note that while this version may work with SonarQube’s commercial editions, the compatibility was not tested and simultaneous analysis using ZPA and SonarSource’s embedded PL/SQL plugin is not supported. If you require this scenario, consider using zpa-cli instead.
Install/update instructions
- Download the sonar-zpa-plugin-3.6.0.jar and copy it to the SONARQUBE_HOME/extensions/plugins.
- Remove the older plugin from that directory.
- Restart the SonarQube instance.
For custom plugin developers
Binary compatibility is not guaranteed either in between any version number change. Custom plugins should be recompiled against the same version of sonar-zpa-plugin
.
Download the zpa-toolkit-3.6.0.jar (requires Java 11+) to test the parser and view the AST.
Full changelog
🔀 Merge
- 7db9459 Merge pull request #193 from felipebz/renovate/all, closes #193
- eb9b9ee Merge pull request #191 from felipebz/renovate/all, closes #191
- 76710bd Merge pull request #190 from felipebz/renovate/all, closes #190
- 2cd89ed Merge pull request #188 from felipebz/renovate/all, closes #188
🚀 Features
- 5e51f43 Make UnknownDatatype a singleton to reduce memory allocations
- 4f142b1 Improve scope management for select expressions to ensure proper method scoping in WITH clause
- 99c3c05 grammar: Support function and procedure declarations in WITH_CLAUSE
- 77cffe8 grammar: Support alternative syntax for json_object (JSON { }) and json_array (JSON [ ])
- 1ca3c0e grammar: Add BOOLEAN_TEST_CONDITION node to support IS TRUE/FALSE conditions in addition to IS NULL
- ed033a6 grammar: Make FROM_CLAUSE optional in queries, aligning with Oracle 23ai
- c753425 grammar: Improve support for TO_YMINTERVAL syntax
- beac75b grammar: Improve support for TO_TIMESTAMP_TZ syntax
- 516cc2c grammar: Improve support for TO_TIMESTAMP syntax
- 65043bb grammar: Improve support for TO_NUMBER syntax (#192), closes #192
- 414f652 grammar: Improve support for TO_DSINTERVAL syntax
- 003a7ca grammar: Improve support for TO_DATE syntax
- 4bd31fe grammar: Improve support for TO_BOOLEAN syntax
- eab1962 grammar: Improve support for TO_BINARY_FLOAT syntax
- de53cbd grammar: Improve support for TO_BINARY_DOUBLE syntax
- e38d895 grammar: Improve support for CAST syntax
- 4161080 grammar: Support COVERAGE pragma
- 7149f96 grammar: Support SUPPRESSES_WARNING_6009 pragma
- 93f5995 grammar: Accept expressions in datatype nodes. This is necessary to support things like "var number(some_constant)"
- 547cf56 grammar: Support TRUNCATE TABLE statement
- bb996a6 Review all uses of tokenOriginalValue and change to tokenValue when applicable. tokenValue returns the normalized token according to the case-sensitivity of the identifiers.
- ab4addf Add ActiveRuleConfigurer interface for rule configuration in analysis
🐛 Fixes
- 27c4fb8 grammar: Support more datatypes in JSON_RETURNING_CLAUSE, JSON_VALUE_RETURN_TYPE and JSON_TRANSFORM_RETURNING_CLAUSE
- 4b68157 grammar: JSON_VALUE function should accept multiple ON MISMATCH clauses
- 0985521 grammar: Use BOOLEAN_LITERAL in BOOLEAN_TEST_CONDITION
- 6580efe deps: update all dependencies
- 2c1ca33 grammar: Use ARGUMENT instead of EXPRESSION in conversion functions because in a PL/SQL context they can be called with named arguments like
var := to_number(right => val);
- b538d56 renovate: switch mode from silent to full
- 6c1dc9f Ignore the case of identifiers when searching the corresponding source file for test and coverage reports
- 7340759 Add a special channel to handle quoted identifiers and fix false positives related to them on rules UnusedVariable, UnusedCursor, UnusedParameter and VariableHiding, closes #186
- 78cfa6a grammar: Fix parsing of "in (subquery)"
🔄️ Changes
- 8c4ba16 toolkit: Rename package org.sonar.plsqlopen.toolkit to com.felipebz.zpa.toolkit
🧪 Tests
- 22a7b1a it: Add integration tests for test and coverage reports
- 265eba8 it: Use assertAll to check multiple values
- 17dd386 it: Update integration test files to match the Oracle 23.5 docs
- 78635c7 Order lines from integration tests expectations
🧰 Tasks
- d57c42a Rename "Z PL/SQL Analyzer" to "ZPA"
- 44a4089 it: Update SonarQube test matrix
- 6cd200a deps: update dependency org.junit.jupiter:junit-jupiter to v5.11.1
- 55747e4 deps: update dependency gradle to v8.10.2
- 3305120 docs: Remove links to the early-access release in preparation for shorter release cycles
- 670656c Update JReleaser config to mark the GitHub releases as draft
- abee5a6 deps: update all dependencies
- 584ca37 deps: Update com.gradleup.shadow plugin to 8.3.2
- 1742d9a Configure Renovate
- 0661483 deps: Use FLR 1.5.0
- 5b51cde Update Gradle to 8.10.1
- 26014af Update SonarQube URL
- e114a0c Update dependencies
- 31c8a62 Remove kotlin-bom from the dependencies
- 43264ac Update Kotlin to 2.0.20
- fa7b3ba Update shadow plugin
- 741f1c9 deps: Bump FLR to 1.5.0-SNAPSHOT
- 630cd0e Update links to the new website
- 0dc3f66 Update SQLcl to 24.2.0.180.1721
- 718ade6 Update .gitattributes
- 5338730 Fix path of vendored files in .gitattributes
- 5dda4cb Update SonarScanner plugin to 5.1.0.4882
- 30399be Update test libraries
- fe44f08 Move dependencies to version catalog
- 59c5bda Update to JReleaser 1.13.1
🛠 Build
- 416af10 Release 3.6.0
- 1d46dc8 Publish a zip file with the plsql-custom-rules example
- 8d1b9c4 Pass "-Xconsistent-data-class-copy-visibility" to Kotlin compiler
- 211d7e6 Use Gradle 8.10
- eb776e0 Restore the default test logging level
- 415beb5 Remove unnecessary --build-cache argument from the build workflow
- 8f1a824 Enable parallel execution and build cache in Gradle
- 06d1488 Use Gradle 8.9
- 5d6b503 Remove SQ 10.5 from the test matrix and add SQ 10.7-SNAPSHOT
- 5249ea0 Remove unnecessary dependency from sonar-zpa-plugin
- 715a8ad Bump project version