Compare commits

..
Author SHA1 Message Date
Andreas Dangel 161d9cd6d6 [maven-release-plugin] prepare release pmd_releases/6.8.0 2018-09-30 10:10:12 +02:00
Andreas Dangel a55b93dd21 Prepare pmd release 6.8.0 2018-09-30 10:03:50 +02:00
Travis CI (pmd-bot) 5accf41cc4 Update documentation
TRAVIS_JOB_NUMBER=2873.1
TRAVIS_COMMIT_RANGE=c62e4beec30d...42b494189d15
2018-09-30 07:30:45 +00:00
Andreas Dangel 42b494189d Update integration test to use a sample-ruleset and run once with
the quickstart ruleset.
2018-09-30 09:08:43 +02:00
Andreas Dangel db95f016d2 Update release notes, add PLSQL section 2018-09-30 08:53:12 +02:00
Andreas Dangel dafbb5853f Merge branch 'pr-1260' 2018-09-30 08:47:07 +02:00
Andreas Dangel 14352a7507 Update release notes, mention quickstart ruleset
Refs #1260
2018-09-30 08:45:08 +02:00
Clément Fournier 99d29c78e5 update documentation 2018-09-29 23:20:01 +02:00
Clément Fournier dad61739ed Update quickstart.xml 2018-09-28 13:25:38 +02:00
Juan Martín Sotuyo Dodero c62e4beec3 Merge pull request #1359 from adangel/plsql-delete-statement
[plsql] Support Delete Statement
2018-09-26 20:24:57 -03:00
Andreas Dangel a29fc094f9 Support DeleteStatement 2018-09-26 10:28:10 +02:00
Juan Martín Sotuyo Dodero a3a48e2cb9 Merge pull request #1360 from adangel/plsql-select-function
[plsql] Support Function Calls in Select
2018-09-25 16:53:41 -03:00
Juan Martín Sotuyo Dodero 386e91fd43 Merge pull request #1346 from adangel/plsql-update-statement
[plsql] Support update statement
2018-09-25 16:50:52 -03:00
Juan Martín Sotuyo Dodero 12b731fb19 Merge pull request #1279 from adangel/plsql-sql-statements
[plsql] Support for SELECT INTO
2018-09-25 16:46:42 -03:00
Juan Martín Sotuyo Dodero 114922d2d4 Merge pull request #1358 from adangel/update-asm-jfx
[core] Update asm and openfjx
2018-09-25 16:43:07 -03:00
Andreas Dangel 55e0c4baf1 Merge branch 'pr-1357' 2018-09-25 19:26:02 +02:00
Andreas Dangel 0913608457 Update release notes, refs #1357 2018-09-25 19:25:41 +02:00
Andreas Dangel 054c06462f Update asm to 6.2.1 2018-09-25 19:21:30 +02:00
Andreas Dangel 7679220cc0 Update openjfx to version 11 2018-09-25 19:21:21 +02:00
Daniel Reigada 1671046e49 Remove Codacy info from summary table 2018-09-25 10:12:26 +01:00
Daniel Reigada 51225d84ed Remove manual index 2018-09-25 10:11:29 +01:00
Daniel Reigada d70c2ba254 Improve Codacy description 2018-09-24 11:54:13 +01:00
Daniel Reigada af06c221d0 Create automated code review section and move Codacy 2018-09-24 11:53:44 +01:00
Daniel Reigada 6fea4ebc2b Remove continuous integrations link from index 2018-09-24 11:42:40 +01:00
Clément Fournier 75f2f18395 Fix PR comments 2018-09-23 21:49:38 +02:00
Clément Fournier 2416b88725 Designer stability improvements 2018-09-23 20:48:36 +02:00
Juan Martín Sotuyo Dodero 310de01fd0 Merge branch 'master' of github.com:pmd/pmd 2018-09-23 01:29:52 -03:00
Juan Martín Sotuyo Dodero 6721e190b0 Merge branch 'pr-1314' 2018-09-23 01:27:52 -03:00
Juan Martín Sotuyo Dodero d5d083745f Update changelog, refs #1314 2018-09-23 01:22:20 -03:00
Juan Martín Sotuyo Dodero 29c5d5b49b Several improvements after final review 2018-09-23 00:55:04 -03:00
Travis CI (pmd-bot) 438b015b3d Update documentation
TRAVIS_JOB_NUMBER=2851.1
TRAVIS_COMMIT_RANGE=36e91f111d1d...7805868f7201
2018-09-22 07:53:25 +00:00
Juan Martín Sotuyo Dodero 7805868f72 Merge pull request #1354 from adangel/issue-1352
[java] MissingSerialVersionUID false-negative with abstract classes
2018-09-22 04:39:10 -03:00
Travis CI (pmd-bot) 36e91f111d Update documentation
TRAVIS_JOB_NUMBER=2848.1
TRAVIS_COMMIT_RANGE=2e3fe51834af...e30503b3726b
2018-09-22 06:32:10 +00:00
Juan Martín Sotuyo Dodero 10b100dded Merge branch 'master' into issue-1352 2018-09-22 03:23:15 -03:00
Juan Martín Sotuyo Dodero 15f99400be Update release_notes.md
Improve formating
2018-09-22 03:21:51 -03:00
Juan Martín Sotuyo Dodero e30503b372 Merge pull request #1353 from adangel/issue-1348
[apex] AvoidGlobalModifierRule gives warning even when its a webservice - false positive
2018-09-22 03:20:24 -03:00
Juan Martín Sotuyo Dodero 2e3fe51834 Merge pull request #1351 from adangel/issue-1350
[java] MissingSerialVersionUID false-positive on interfaces
2018-09-22 03:15:14 -03:00
Juan Martín Sotuyo Dodero f670fa95ab Merge branch 'pr-1309' 2018-09-22 01:28:36 -03:00
Juan Martín Sotuyo Dodero ca5cddf467 Update changelog, refs #1309 2018-09-22 01:27:52 -03:00
Andreas Dangel 536176f359 [java] MissingSerialVersionUID false-negative with abstract classes
Fixes #1352
2018-09-18 19:13:05 +02:00
Andreas Dangel ec79ac1004 [apex] AvoidGlobalModifierRule gives warning even when its a webservice - false positive
Fixes #1348
2018-09-17 13:20:04 +02:00
Andreas Dangel f67c4a2adc [java] MissingSerialVersionUID false-positive on interfaces
Fixes #1350
2018-09-17 08:57:20 +02:00
Andreas Dangel 3113e4ad0f Merge branch 'pr-1339' 2018-09-14 23:02:16 +02:00
Andreas Dangel 382aa8e142 Update release notes, refs #1339 2018-09-14 23:01:05 +02:00
Andreas Dangel 616746c004 Support UpdateStatement 2018-09-13 11:03:27 +02:00
Andreas Dangel 5bbbaeac1e Support FunctionCall in SelectList 2018-09-12 20:06:02 +02:00
BBG b3a78c4ac6 improve danger message 2018-09-12 16:44:48 +08:00
Andreas Dangel 64137d3231 Merge branch 'pr-1322' 2018-09-11 14:05:54 +02:00
Andreas Dangel eec6aa2a9a Update release notes with API deprecations
refs #881, refs #1322
2018-09-11 14:04:54 +02:00
Andreas Dangel 47171207ff * Make AbstractPropertySource.getPropertySourceType() abstract
* Readd RuleReference.hasOverriddenProperty()
2018-09-11 13:40:13 +02:00
Andreas Dangel 2649cf4e5b Update release notes, refs #1279 2018-09-11 13:14:16 +02:00
Andreas Dangel 3498cde1f9 Add CodingStyleExample.pls for parsing tests 2018-09-11 13:12:12 +02:00
Andreas Dangel c5fdf94b03 Support simple FunctionCall 2018-09-11 13:07:32 +02:00
Andreas Dangel dea38d44c9 Own AST node for FloatingPointCondition 2018-09-11 11:49:40 +02:00
Andreas Dangel 38d97c72a9 Reuse IsNullCondition 2018-09-11 11:46:54 +02:00
Matias Fraga c2643f0278 PR review 2018-09-10 15:55:14 -03:00
Andreas Dangel d47b130a89 Fix unit tests 2018-09-10 20:42:35 +02:00
Andreas Dangel db767317e1 Support IsTypeOfCondition 2018-09-10 20:42:35 +02:00
Andreas Dangel 849e3ada8d Support Between Condition, add test case for In Condition 2018-09-10 20:42:35 +02:00
Andreas Dangel 3760f53ab1 Support NullCondition 2018-09-10 20:42:31 +02:00
Andreas Dangel 78c5ce4636 Support LikeCondition 2018-09-10 19:31:34 +02:00
Andreas Dangel 7f2a052d00 Merge branch 'origin/master' into plsql-sql-statements 2018-09-10 19:11:13 +02:00
Juan Martín Sotuyo Dodero 8b3a9c49cb Merge branch 'pr-1340' 2018-09-10 13:45:15 -03:00
Juan Martín Sotuyo Dodero 7ee3e938cc Update changelog, refs #1340 2018-09-10 13:45:03 -03:00
Kristian Scheibe 5cca9e8f50 Fixed javadoc for test. 2018-09-10 15:32:26 +02:00
Kristian Scheibe f9e2fc7e54 Derive the JavaRuleViolation's class name from all java types and not just classes. 2018-09-10 15:30:01 +02:00
Matias Fraga 755ae837c1 Merge branch 'token-manager' of github.com:teamraptor/pmd 2018-09-09 20:21:46 -03:00
Matias Fraga 15bd890110 Generate AntlrTokenManager and decouple the lexer instance from the tokenizer 2018-09-09 20:19:38 -03:00
Matias Fraga 1eed0993b3 Merge branch 'master' of github.com:pmd/pmd into HEAD 2018-09-09 17:39:46 -03:00
Matias Fraga 99a79ccd17 Merge branch 'master' of github.com:teamraptor/pmd 2018-09-09 17:33:53 -03:00
Matias Fraga f6c3669a66 Merge branch 'master' of github.com:pmd/pmd 2018-09-09 17:33:41 -03:00
Andreas Dangel d4cc311486 Merge branch 'pr-1302' 2018-09-09 17:07:04 +02:00
Juan Martín Sotuyo Dodero 4588879062 Merge branch 'pr-1336' 2018-09-09 02:28:42 -03:00
Juan Martín Sotuyo Dodero b8accbb01a Merge branch 'master' into issue-1325 2018-09-08 22:11:35 -03:00
Juan Martín Sotuyo Dodero 94d298168b Merge branch 'pr-1337' 2018-09-08 22:04:33 -03:00
Juan Martín Sotuyo Dodero d14c7a9636 Use typeres to detect proper AtomicBooleans 2018-09-08 22:04:11 -03:00
Andreas Dangel 06be510702 [java] ConsecutiveLiteralAppends: Fix further FPs/FNs 2018-09-07 16:31:58 +02:00
Andreas Dangel 212bf46be8 [java] LinguisticNaming should support AtomicBooleans
Fixes #1334
2018-09-07 15:21:01 +02:00
Andreas Dangel 7d3f287f38 [java] False positive in ConsecutiveLiteralAppends
Fixes #1325
2018-09-07 14:30:16 +02:00
Travis CI (pmd-bot) 98807dae25 Update documentation
TRAVIS_JOB_NUMBER=2805.1
TRAVIS_COMMIT_RANGE=e3018c3892bb...4999c5f9ffdf
2018-09-05 04:34:34 +00:00
Juan Martín Sotuyo Dodero 4999c5f9ff Merge branch 'pr-1331' 2018-09-05 01:16:24 -03:00
Juan Martín Sotuyo Dodero b0336d3616 Update changelog, refs #1331 2018-09-05 01:16:04 -03:00
Clément Fournier 492f1798d8 Fix tests 2018-09-04 11:44:16 +02:00
Clément Fournier 16f0633193 Fix #1329 2018-09-04 11:34:34 +02:00
Andreas Dangel e3018c3892 [doc] Update gems 2018-09-02 15:36:38 +02:00
Andreas Dangel 848a0761fe Fix release scripts
* fix language var LANG
* fix bundle install command
* automate creation of release notes post in pmd.github.io
* add var "is_release_notes_processor"
* Always install the gems for rendering release notes
2018-09-02 15:31:01 +02:00
Clément Fournier 849cb30054 Remove Beta annotation 2018-09-02 15:11:21 +02:00
Clément Fournier 89d286be59 Merge branch 'master' into api-deprecation-annotations 2018-09-02 15:08:07 +02:00
Andreas Dangel 65a3e1a3f7 Fix old release notes 2018-09-02 14:33:51 +02:00
Andreas Dangel 86c89040b4 Prepare next development version 2018-09-02 14:30:21 +02:00
Andreas Dangel 291d36d841 [maven-release-plugin] prepare for next development iteration 2018-09-02 14:27:42 +02:00
Andreas Dangel b98bd0bb96 [maven-release-plugin] prepare release pmd_releases/6.7.0 2018-09-02 14:27:33 +02:00
Andreas Dangel d8c51db85e Prepare pmd release 6.7.0 2018-09-02 14:19:37 +02:00
Andreas Dangel acdab9df56 [ci] Fix java10 installation for sonar 2018-09-02 12:31:11 +02:00
Andreas Dangel 7a8847bacb [ci] Fix sonar configuration
For now, we need to use java10 with sonar, until sonarjava 5.8.0
is released, which adds support for java11.
Apparantly sonar also loads the classfiles and can't yet load
java11 classes, leading to many errors
"Unsupported class file major version 55" while analyzing
the project.

Also update SONAR_TOKEN

See https://jira.sonarsource.com/browse/SONARJAVA-2877
2018-09-02 12:15:45 +02:00
Andreas Dangel c9f686903e [ci] Coveralls hasn't built the project since June 25th
The previous fix was not enough. Coveralls maven plugin depends on
javax.xml.bind, which has been removed with JDK11, since it is
a EE feature.

Workaround is now, to add the jaxb-api as a plugin dependency, so
that the utility class javax.xml.bind.DatatypeConverter is
available.

Fixes #1317
2018-09-02 10:53:02 +02:00
Juan Martín Sotuyo Dodero 2eaaaa42aa Merge branch 'pr-1327' 2018-09-01 21:18:48 -03:00
Juan Martín Sotuyo Dodero dc19269491 Merge branch 'master' into issue-1323 2018-09-01 20:16:13 -03:00
Andreas Dangel 921d4190d7 [ci] Coveralls hasn't built the project since June 25th
Fixes #1317
2018-09-01 23:15:29 +02:00
Andreas Dangel 2264d3c964 [ci] Fix sonar / coveralls build after switching to jdk 11
Also update jacoco plugin to 0.8.2
2018-09-01 23:11:12 +02:00
Travis CI (pmd-bot) ff5e83b21d Update documentation
TRAVIS_JOB_NUMBER=2790.1
TRAVIS_COMMIT_RANGE=b9501e5c7791...d0efb3cad751
2018-09-01 20:11:10 +00:00
Andreas Dangel 7ebcb30aaa No need to check for missing ':' 2018-09-01 21:41:05 +02:00
Andreas Dangel d0efb3cad7 Merge branch 'pr-1319' 2018-09-01 21:32:08 +02:00
Andreas Dangel 58b1985509 Merge branch 'pr-1324' 2018-09-01 21:32:03 +02:00
Travis CI (pmd-bot) b9501e5c77 Update documentation
TRAVIS_JOB_NUMBER=2786.1
TRAVIS_COMMIT_RANGE=ff63c5681a73...bec314ef276d
2018-09-01 19:29:55 +00:00
Andreas Dangel 378bfe5948 Update release notes, refs #1327 2018-09-01 21:21:03 +02:00
Juan Martín Sotuyo Dodero bec314ef27 Merge branch 'pr-1266' 2018-09-01 16:13:02 -03:00
Andreas Dangel 2fb3cd13cb [java] AvoidUsingHardCodedIP false positive for ":bee"
"::bee" (two colons) is a valid IPv6 address, while ":bee"
is not.

Refs #1323
2018-09-01 21:12:29 +02:00
Juan Martín Sotuyo Dodero ff63c5681a Merge branch 'pr-1326' 2018-09-01 16:07:30 -03:00
Juan Martín Sotuyo Dodero ded5c1ca51 Add 'as' a a valid transformation prefix 2018-09-01 16:07:13 -03:00
Andreas Dangel a30d23e587 [java] LinguisticNaming - make tranform method names configurable
Follow-up for #1252
2018-08-31 11:29:55 +02:00
Juan Martín Sotuyo Dodero 03124c5673 Update changelog, refs #1323 2018-08-30 14:11:10 -03:00
Juan Martín Sotuyo Dodero 6ef3b5a583 [java] Remove no longer used property
- Fixes #1323
2018-08-30 13:54:59 -03:00
Andreas Dangel c6b529dde8 [ci] update github oauth token 2018-08-30 10:50:22 +02:00
Andreas Dangel 0a026a8142 [ci] pmd-regression-tester - disable exit immediately for uploading baseline
See also pmd/pmd-regression-tester#40
It fails at the very last step (determining result code), so
the baseline is created and can be uploaded.
2018-08-30 10:38:41 +02:00
Jeff Hube 86dc44de3e Revert changes to ApexRootNode 2018-08-29 12:28:01 -04:00
Jeff Hube e86166ee62 Add ASTFormalComment as first child, calculate position 2018-08-29 12:26:28 -04:00
Clément Fournier faabb2a84e Code style 2018-08-29 16:06:23 +02:00
Jeff Hube df7cc1c3a7 Add ASTFormalComment 2018-08-28 17:39:29 -04:00
Clément Fournier af5130ab00 Improvements and planned updates around PropertySource 2018-08-28 00:25:06 +02:00
Jeff Hube 42ab05551d Merge branch 'master' into apexdoc 2018-08-27 15:59:42 -04:00
Jeff Hube a17f38a8c1 Remove autogenerated doc changes 2018-08-27 15:58:20 -04:00
Clément Fournier 079fe95152 Merge branch 'pr-1320' 2018-08-27 20:03:14 +02:00
Travis CI (pmd-bot) f25a2e08aa Update documentation
TRAVIS_JOB_NUMBER=2772.1
TRAVIS_COMMIT_RANGE=f3c54cf7ec47...348a11f11995
2018-08-27 16:37:28 +00:00
Juan Martín Sotuyo Dodero 348a11f119 Merge branch 'pr-1303' 2018-08-27 13:21:52 -03:00
Juan Martín Sotuyo Dodero df64d8bfce Merge branch 'master' into deprecate-old-naming-conventions-rules 2018-08-27 12:58:18 -03:00
Juan Martín Sotuyo Dodero 2cf941dd4e [core] Upgrade PMD on self 2018-08-27 12:24:33 -03:00
Travis CI (pmd-bot) f3c54cf7ec Update documentation
TRAVIS_JOB_NUMBER=2768.1
TRAVIS_COMMIT_RANGE=d743303f2e06...982effe7440a
2018-08-27 07:38:24 +00:00
Juan Martín Sotuyo Dodero 982effe744 Merge branch 'pr-1297' 2018-08-27 04:20:34 -03:00
Juan Martín Sotuyo Dodero d743303f2e Update release ruleset 2018-08-27 04:17:43 -03:00
Juan Martín Sotuyo Dodero f13227176c Update changelog 2018-08-27 04:14:12 -03:00
Juan Martín Sotuyo Dodero 26f5a41c47 [java] OneDeclarationPerLine should check fields too 2018-08-27 04:12:39 -03:00
Juan Martín Sotuyo Dodero 45d0e12437 Merge branch 'pr-1315' 2018-08-27 04:06:46 -03:00
Juan Martín Sotuyo Dodero 1740d25cd7 Rule was moved 2018-08-27 04:06:08 -03:00
Juan Martín Sotuyo Dodero 1f79968bbb Update changelog, refs 1315 2018-08-27 03:03:39 -03:00
Juan Martín Sotuyo Dodero 5cf2334413 Allow both strict and lax checking mode 2018-08-27 03:02:44 -03:00
Juan Martín Sotuyo Dodero 7bba6c46a2 Merge branch 'master' into pr-1315 2018-08-27 01:15:25 -03:00
Juan Martín Sotuyo Dodero 7dd07c9151 Merge branch 'pr-1308' 2018-08-26 21:59:13 -03:00
Clément Fournier 8a9e0b9eff Remove page title from the toc 2018-08-27 02:40:41 +02:00
Clément Fournier 5e2b4a8d5c Merge branch 'master' into tocmaker-tag 2018-08-27 02:40:24 +02:00
Juan Martín Sotuyo Dodero 4518289d0c Merge branch 'pr-1310' 2018-08-26 20:43:47 -03:00
Jeff Hube 780a9e5dde Fix pr comments 2018-08-22 11:20:45 -04:00
Jeff Hube cba80b2e0e Update rule since version 2018-08-21 17:03:28 -04:00
Jeff Hube a4176126ca Fix rule description 2018-08-21 17:02:00 -04:00
Jeff Hube 241eda93b9 Add OneDeclarationPerStatement 2018-08-21 15:52:59 -04:00
Jeff Hube d500e7be48 Add ApexDocRule 2018-08-21 12:42:02 -04:00
Juan Martín Sotuyo Dodero cbbc9f495b Merge branch 'pr-1312' 2018-08-20 21:49:56 -03:00
Clément Fournier d528dcd5d4 Update release notes, refs #1312 2018-08-20 18:35:46 +02:00
Clément Fournier 40ce9313ae Deprecate R[UN]SIGNEDSHIFT
No usages to report
2018-08-20 18:08:21 +02:00
Clément Fournier 3269f3a6ca Render release notes before pushing to sourceforge 2018-08-19 17:24:30 +02:00
Clément Fournier bf8964f9a4 Fix inconsistent versioning
Since we don't use a SNAPSHOT version in _config.yml during
development, the release note's version is not SNAPSHOT either.
2018-08-19 17:24:25 +02:00
Tomi De Lucca 543795e550 checkstyle fixes 2018-08-19 04:06:53 -03:00
Tomi De Lucca 1796d2a7a5 PR Review 2018-08-19 03:56:07 -03:00
Matias Fraga 1812880c47 Enhance AntlrTokenizer 2018-08-18 23:20:18 -03:00
Matias Fraga f5069256b9 Remove visitor configuration 2018-08-18 23:14:12 -03:00
Clément Fournier 4066ca9986 Update tocmaker_block.rb 2018-08-19 00:19:02 +02:00
lsoncini a453566caa Merge branch 'master' of https://github.com/pmd/pmd 2018-08-18 17:53:48 -03:00
Clément Fournier d2cdcb7262 Bug 2018-08-18 22:03:13 +02:00
Clément Fournier c7455012d4 Generate toc conditionnally 2018-08-18 20:30:19 +02:00
Clément Fournier 3cf456dbfa Update release script and doc 2018-08-18 17:40:57 +02:00
Clément Fournier 53b2b288ac Generate the release notes' toc 2018-08-18 17:34:48 +02:00
Travis CI (pmd-bot) b8cffe638e Update documentation
TRAVIS_JOB_NUMBER=2743.1
TRAVIS_COMMIT_RANGE=2feac39d2fc4...71ce6c2eae6d
2018-08-17 18:47:44 +00:00
Andreas Dangel 71ce6c2eae [java] use pmd-java:typeIs always with the prefix "pmd-java".
Jaxen ignores the prefix, Saxon will require it.
So, it's more consistent to use the prefix always.
2018-08-17 20:27:09 +02:00
Andreas Dangel 27ac0944b5 [java] Use typeresolution for various (J)Unit rules 2018-08-17 20:20:10 +02:00
Andreas Dangel b9b19ec3ab Merge branch 'pr-1256' 2018-08-17 19:12:53 +02:00
Andreas Dangel 91d4d909ad Update release notes, fixes #940, refs #1256 2018-08-17 19:11:23 +02:00
Travis CI (pmd-bot) 2feac39d2f Update documentation
TRAVIS_JOB_NUMBER=2740.1
TRAVIS_COMMIT_RANGE=e90e01b69582...6684c58bfb0c
2018-08-17 14:40:26 +00:00
Clément Fournier e17a965e03 Merge branch 'master' into deprecate-old-naming-conventions-rules 2018-08-17 16:29:51 +02:00
Andreas Dangel 6684c58bfb Merge branch 'pr-1296' 2018-08-17 16:11:06 +02:00
Clément Fournier 12418e5656 use rule tag 2018-08-17 15:56:39 +02:00
Clément Fournier 101a2c4100 Merge branch 'master' into split-field-naming-conventions 2018-08-17 15:55:42 +02:00
Clément Fournier 5526cae376 Fix pr comments 2018-08-17 15:54:03 +02:00
Andreas Dangel e90e01b695 do-release: move sf-news part just above the announcement email 2018-08-17 10:49:23 +02:00
Andreas Dangel 1855bb5797 Merge branch 'pr-1306' 2018-08-17 10:45:51 +02:00
Andreas Dangel eb03003f66 Cache bundles on travis, use bundle exec 2018-08-17 10:43:12 +02:00
Clément Fournier 94dc4694f2 Use rule tag introduced by #1306 2018-08-16 22:21:28 +02:00
Andreas Dangel ec011cc885 Add additional test cases for expressions in where clauses 2018-08-16 17:19:22 +02:00
Andreas Dangel ec665de1a2 [plsql] Add support for GroupByClause
* Restructure FromClause to have one node with multiple table references
2018-08-16 16:14:57 +02:00
Andreas Dangel cb323a3496 Enforce building with at least java10 2018-08-15 23:40:13 +02:00
Andreas Dangel 9529dd9ad7 [doc] Minimum java version for building is now java10, mention JAVAFX_HOME 2018-08-15 23:26:04 +02:00
Andreas Dangel 53a763d901 Make run.sh / designer.bat compatible with java/openjfx
* Use JAVAFX_HOME to add extra classpath for openjfx
* Add back the jre_specific_vm_options when needed
2018-08-15 23:25:22 +02:00
Andreas Dangel c4857aaa20 [ci] Use openjdk11 for building, add osx into the build matrix
* Allow travis to cache jdk
* cache $HOME/.rvm, install bundler with current rvm ruby (needed for osx)
2018-08-15 23:24:41 +02:00
Andreas Dangel 707781600f Use openjfx dependencies from maven central
* Can use the release flag of maven-compiler-plugin again
* Make the openjfx dependencies as provided, so that they
  don't end up in pmd-bin-*.zip
2018-08-15 23:23:55 +02:00
Clément Fournier 944c1222d2 Separate treatment of public and non-public constants 2018-08-15 18:35:42 +02:00
Juan Martín Sotuyo Dodero ff15f914f4 Merge branch 'pr-1305' 2018-08-15 11:05:22 -03:00
Clément Fournier 43a21997d9 Update do-release.sh 2018-08-15 15:55:05 +02:00
Andreas Dangel be4a3a2940 [core] Deprecate ReportTree
* This change deprecate ReportTree and all related classes
  in net.sourceforge.pmd.lang.dfa.report
* Reworked YAHTMLRender to work without ReportTree
* Adds a unit test for YAHTMLRenderer

Fixes #1283
2018-08-15 10:46:12 +02:00
Clément Fournier 3bbd355d1c Update release_notes 2018-08-15 03:32:47 +02:00
Clément Fournier 22c143f6e6 Take snapshot into account 2018-08-15 03:30:34 +02:00
Clément Fournier b8fb9bd63f Remove logger 2018-08-15 02:46:54 +02:00
Clément Fournier 9d8a8d74fb Update release.sh 2018-08-15 02:43:25 +02:00
Clément Fournier ba19c59bdb Add logger 2018-08-15 01:54:12 +02:00
Clément Fournier e888283b39 Make script to render release notes liquid 2018-08-14 17:50:49 +02:00
Andreas Dangel 89f6ae5806 [java] InvalidSlf4jMessageFormat: Avoid using findDescendantsOfType
to limit the scope of searched nodes
2018-08-14 10:58:41 +02:00
Andreas Dangel 74ed544500 [java] InvalidSlf4jMessageFormat false positive: too many arguments with string concatenation operator
Fixes #1291

If there are multiple Literals for the first parameter, we assume,
they are concatenated together and sum up all placeholders.
Such String literals are concatenated already by the java compiler,
so splitting a String in that way has no negative impact.

This change also makes use of the RuleChain.
2018-08-14 10:58:41 +02:00
Clément Fournier a9c8ad7d97 Add PrivateApi and ReservedSubclassing annotations 2018-08-13 19:26:34 +02:00
Juan Martín Sotuyo Dodero 62612dc507 Merge branch 'pr-1299' 2018-08-13 12:06:46 -03:00
Juan Martín Sotuyo Dodero 1cab291ee8 Merge branch 'pr-1301' 2018-08-13 10:28:01 -03:00
Andreas Dangel f773581459 [core] PMD stops processing file completely, if one rule in a rule chain fails
Fixes #1300
2018-08-13 11:21:04 +02:00
Andreas Dangel f8bb0488d8 [java] RedundantFieldInitializer - NumberFormatException with Long
Fixes #1298
2018-08-13 09:55:02 +02:00
Andreas Dangel 7e53729baa Merge branch 'pr-1295' 2018-08-13 09:28:37 +02:00
Clément Fournier 19b9c841dc Checkstyle 2018-08-13 09:09:26 +02:00
Clément Fournier c9cb88e55c Deprecate old rules 2018-08-13 05:55:30 +02:00
Clément Fournier 51c72c7a9f Update release notes 2018-08-13 01:21:47 +02:00
Clément Fournier 7bc0305835 Add tests 2018-08-13 01:09:48 +02:00
Clément Fournier e4566ea17a Add FieldNamingConventionsRule, document ast 2018-08-13 00:46:31 +02:00
Clément Fournier 44e23e7d2e Make classloaders final in JTypeQName 2018-08-12 23:16:31 +02:00
Clément Fournier eaabd8e646 Rename to quickstart.xml 2018-08-12 20:07:29 +02:00
Clément Fournier 142bf1a82e Merge branch 'master' into default-rset 2018-08-12 20:05:23 +02:00
Travis CI (pmd-bot) 16402c9f13 Update documentation
TRAVIS_JOB_NUMBER=2707.1
TRAVIS_COMMIT_RANGE=7bbb68885965...0ae88f7cd0b8
2018-08-12 17:55:08 +00:00
Clément Fournier 0ae88f7cd0 Merge branch 'pr-1252' 2018-08-12 19:27:20 +02:00
Clément Fournier c3ea6de8e0 Move LinguisticNaming to 6.7.0 2018-08-12 19:25:13 +02:00
Juan Martín Sotuyo Dodero 7bbb688859 Merge branch 'pr-1292' 2018-08-12 14:03:02 -03:00
Andreas Dangel 319c6cd073 Update grammar comment 2018-08-10 15:22:40 +02:00
Andreas Dangel 3332117fe3 [core] Add support for Gradle's AntLoggingAdapter, default fallback loglevel is WARN
Fixes #1288
2018-08-09 20:54:14 +02:00
Andreas Dangel 414e4a13fb Add JoinClause tests, fix outer join with using,
add support for query partition clause
2018-08-09 17:44:49 +02:00
Andreas Dangel e3dfda3cca Simplify grammar 2018-08-09 16:34:22 +02:00
Andreas Dangel bfa15f2191 Merge branch 'pr-1290' 2018-08-08 08:30:44 +02:00
Andreas Dangel fb0e455e49 Update release notes, refs #1290 2018-08-08 08:30:05 +02:00
BBG 01c622af10 fix comments 2018-08-08 10:59:41 +08:00
Travis CI (pmd-bot) 8ea5fa1447 Update documentation
TRAVIS_JOB_NUMBER=2695.1
TRAVIS_COMMIT_RANGE=51a1ef117134...ff5fe372dfe9
2018-08-07 18:04:48 +00:00
Andreas Dangel ff5fe372df Merge branch 'pr-1289' 2018-08-07 19:54:18 +02:00
Andreas Dangel 3c3abcadeb Update release notes, refs #1289, fixes #1258 2018-08-07 19:47:34 +02:00
Andreas Dangel 802104525a LinguisticNaming: add additional property to avoid too many FPs
by default for transform methods
2018-08-07 19:32:38 +02:00
Andreas Dangel 89f027a64f LinguisticNaming: fix Boolean false-positive 2018-08-07 19:21:56 +02:00
Andreas Dangel 7d9fd61c50 Fix wrong merge 2018-08-07 19:17:21 +02:00
BBG ee059422fd Create the documentation about pmdtester 2018-08-07 23:54:14 +08:00
Danny van Heumen 4c0b18068f [java] UselessParentheses: Fix false positive for assignment within parentheses in condition statement. 2018-08-06 23:15:12 +02:00
Andreas Dangel 7bdb10bccd Merge branch 'master' into linguistic-antipatterns 2018-08-06 21:08:45 +02:00
Andreas Dangel 62254aa6c2 Fix review comments for LinguisticNamingRule
* Added specific messages for the different types of linguistic patterns detected
* Fix support for multiple field/variable declaration
2018-08-06 20:54:16 +02:00
Clément Fournier 51a1ef1171 Use https in ruleset template for documentation
Would help avoiding issues like #1249, #1271
2018-08-06 16:14:40 +02:00
Alex Shesterov f2cb480595 Add tests UseAssertEqualsInsteadOfAssertTrue,UseAssertNullInsteadOfAssertTrue,UseAssertSameInsteadOfAssertTrue,UnnecessaryBooleanAssertion (https://github.com/pmd/pmd/issues/940) 2018-08-06 11:38:21 +00:00
Alex Shesterov fadbbbba02 Add tests UseAssertEqualsInsteadOfAssertTrue,UseAssertNullInsteadOfAssertTrue,UseAssertSameInsteadOfAssertTrue,UnnecessaryBooleanAssertion (https://github.com/pmd/pmd/issues/940) 2018-08-06 09:25:49 +00:00
Alex Shesterov 2dbb332f00 Add tests and enhance description for JUnit4TestShouldUseTestAnnotation (https://github.com/pmd/pmd/issues/940) 2018-08-06 09:05:03 +00:00
Alex Shesterov 2ead1237d6 Add tests and enhance descriptions for JUnit4TestShouldUseBeforeAnnotation,JUnit4TestShouldUseAfterAnnotation (https://github.com/pmd/pmd/issues/940) 2018-08-06 08:35:48 +00:00
Andreas Dangel a2d0b41388 [jsp] add test for jspx extension
Refs #1276
2018-08-06 09:44:06 +02:00
Andreas Dangel 2d87f575d3 Merge branch 'pr-1275' 2018-08-06 09:41:42 +02:00
Andreas Dangel dcb9d4ade1 Update release notes, closes #1274 2018-08-06 09:40:04 +02:00
Andreas Dangel 1306a2b859 Merge branch 'pr-1267' 2018-08-06 09:09:45 +02:00
Andreas Dangel 4b72a66e3c Update release notes, refs #1267 2018-08-06 09:09:09 +02:00
Juan Martín Sotuyo Dodero db792af06c Update changelog, refs #1277 2018-08-04 18:02:27 -03:00
Juan Martín Sotuyo Dodero 919aa21761 Merge branch 'pr-1277' 2018-08-04 17:59:46 -03:00
Juan Martín Sotuyo Dodero 5f593561d9 Merge branch 'pr-1265' 2018-08-04 15:18:32 -03:00
Juan Martín Sotuyo Dodero 5ca1f7438c Merge branch 'pr-1269' 2018-08-04 15:14:06 -03:00
Juan Martín Sotuyo Dodero 1a69dbf831 Merge branch 'pr-1281' 2018-08-04 14:56:20 -03:00
Andreas Dangel d859f6e0e3 Test Framework: Only show "Unit Tests" node, if there are unit tests 2018-08-04 18:54:00 +02:00
Andreas Dangel 7192663c1a [plsql] Improvements on the AST for SELECT
* SubqueryOperation is now available
* FromClause is a node on its own
* OuterJoinType is available
2018-08-03 16:50:48 +02:00
Andreas Dangel b9344ef6f6 [plsql] Add support for OrderBy and RowLimiting clauses for SELECT 2018-08-03 15:48:23 +02:00
Andreas Dangel f7bca5618f Merge branch 'pr-1278' 2018-08-02 19:09:04 +02:00
Andreas Dangel 64682ed07f Update release notes, refs #1278 2018-08-02 19:08:55 +02:00
BBG aa2a363994 use pmdtester 1.0.0.pre.beta3 2018-08-02 22:35:18 +08:00
Andreas Dangel c30c3a3a5e Update pmdtester 2018-08-01 22:24:37 +02:00
jordillachmrf 57cba95386 #1276 add support for jspf and tag extensions 2018-08-01 17:22:43 +02:00
jordillachmrf 543aadad20 #1274 Support EL in tag attributes
Adding support to EL in tag attributes

<font size="2" ${something ? 'class=\"red\"' : ''}>
	<c:out value="some value" />
</font>
2018-08-01 16:27:40 +02:00
Andreas Dangel 23f57b5819 Fix NPE for array types 2018-07-30 21:40:25 +02:00
Andreas Dangel dd99a35aaa [core] Test Framework: Sort violations by line/column
Fixes #1191
2018-07-30 20:49:15 +02:00
Andreas Dangel b22a94c4d4 [java] UnnecessaryFullyQualifiedName false positive: static method on shadowed implicitly imported class
Fixes #1255
2018-07-30 19:10:36 +02:00
Andreas Dangel 5316dd061b Merge branch 'pr-1254' 2018-07-30 10:46:11 +02:00
Andreas Dangel 6c059d743a Update release notes, refs #1254 2018-07-30 10:44:23 +02:00
Travis CI (pmd-bot) 46bc8447c5 Update documentation
TRAVIS_JOB_NUMBER=2665.1
TRAVIS_COMMIT_RANGE=ecdd3ad2a793...3820bdc36c75
2018-07-30 05:17:24 +00:00
Juan Martín Sotuyo Dodero 3820bdc36c Merge branch 'pr-1236' 2018-07-30 02:01:49 -03:00
Juan Martín Sotuyo Dodero ecdd3ad2a7 Update changelog, refs #1264 2018-07-30 01:03:24 -03:00
Juan Martín Sotuyo Dodero 078ffa18e4 Merge branch 'pr-1264' 2018-07-30 01:02:23 -03:00
Travis CI (pmd-bot) afaff78468 Update documentation
TRAVIS_JOB_NUMBER=2662.1
TRAVIS_COMMIT_RANGE=5caee3190a23...ad5cd0ddad93
2018-07-30 03:26:59 +00:00
Juan Martín Sotuyo Dodero ad5cd0ddad Update changelog, refs #1258 2018-07-30 00:13:48 -03:00
Juan Martín Sotuyo Dodero a5589e8f3a Merge branch 'pr-1258' 2018-07-30 00:11:08 -03:00
Juan Martín Sotuyo Dodero c7ac7ccbd1 [java] Avoid NoClassDefFoundError with incomplete classpath 2018-07-29 20:59:48 -03:00
Andreas Dangel 582218bed9 [java] MissingSerialVersionUID - add test case, use typeIs 2018-07-29 21:57:01 +02:00
BBG 2b0e9e0ccf danger integration 2018-07-30 00:11:02 +08:00
Andreas Dangel 5caee3190a [ci] more logging for pmd.github.io push, fix docs upload, fix baseline for tags 2018-07-29 13:58:12 +02:00
Andreas Dangel c5e2660c41 Prepare next development version 2018-07-29 12:34:55 +02:00
Andreas Dangel 20f52700b4 [maven-release-plugin] prepare for next development iteration 2018-07-29 12:07:05 +02:00
Andreas Dangel 868f262c21 [maven-release-plugin] prepare release pmd_releases/6.6.0 2018-07-29 12:06:56 +02:00
Andreas Dangel 6acd758246 Prepare pmd release 6.6.0 2018-07-29 11:59:34 +02:00
Andreas Dangel 11cc39a4af Merge branch 'pr-1263' 2018-07-29 11:33:23 +02:00
Andreas Dangel 409e69c474 Merge branch 'pr-1262' 2018-07-29 11:32:52 +02:00
Andreas Dangel aaa50c996e Merge branch 'pr-1253' 2018-07-29 11:32:44 +02:00
Andreas Dangel 55ae5959cc Merge branch 'pr-1248' 2018-07-29 11:32:36 +02:00
Andreas Dangel 167cb97337 Fix missing full_ver in run.sh 2018-07-29 11:26:27 +02:00
Andreas Dangel 7e737b3c8a Update release notes, fix typos 2018-07-29 10:39:03 +02:00
Andreas Dangel b79f5e93c1 Update release notes for java 11 2018-07-29 10:34:47 +02:00
Andreas Dangel 428d6d2f88 [core] "Unsupported build listener" in gradle build
Fixes #1178
2018-07-29 10:23:22 +02:00
Rafael Cortês 888824d24a Fix NullPointerException in CPPTokenizer:99
Due to `skipBlocks = true` and `skipBlocksStart` being uninitialized in `CPPTokenizer`, `maybeSkipBlocks` would always throw a NullPointerException as it is assuming that `setProperties` is always called after the constructor.
Changed `CPPLanguage` to always invoke `setProperties`, similarly to `CsLanguage`.
This only happens in programmatic invocations.
2018-07-29 09:11:15 +01:00
Andreas Dangel 499dcab9d9 [java] NPath complexity false negative due to overflow
Fixes #1226
2018-07-28 17:57:10 +02:00
Andreas Dangel 2a39c7a4d0 Fix sed script to be MacOSX compatible 2018-07-28 12:31:15 +02:00
Andreas Dangel 580c92c550 [plsql] Add initial support for SELECT INTO - still WIP 2018-07-27 15:54:45 +02:00
Clément Fournier aba00d14a9 Add Java default ruleset 2018-07-27 14:12:46 +02:00
Karl-Philipp Richter a5a0efa1fb Use typeof in MissingSerialVersionUID
The construct

```
count(ImplementsList
[ClassOrInterfaceType/@Image='Serializable'
or ClassOrInterfaceType/@Image='java.io.Serializable']) =1
```

doesn't cover subclasses of a class or interface implementing or
extending Serializable whereas the `typeof` operator does.

close #1078
2018-07-26 18:08:07 +02:00
Alex Shesterov 664d76e072 Add JUnit5 BeforeAll,BeforeEach,AfterAll,AfterEach annotations to avoid false positives for JUnit5 tests (https://github.com/pmd/pmd/issues/940) 2018-07-25 18:50:11 +00:00
Alex Shesterov fc3798e76e Add JUnit5 test annotations to avoid false positives for JUnit5 tests (https://github.com/pmd/pmd/issues/940) 2018-07-25 18:46:04 +00:00
Andreas Dangel 407e940dd4 Fix review comments 2018-07-25 19:56:37 +02:00
Andreas Dangel c598d3b049 Merge branch 'pr-1250' 2018-07-23 20:15:18 +02:00
Andreas Dangel 5b03f01e6f Update release notes, refs #1250 2018-07-23 20:15:08 +02:00
Andreas Dangel fa3a985522 Use ruby 2.4.1 2018-07-23 20:14:59 +02:00
Andreas Dangel 45af47af4c Fixes #1225 [core] Error in sed expression on line 82 of run.sh
while detecting installed version of Java
2018-07-23 17:30:19 +02:00
Travis CI (pmd-bot) 90a7074d97 Update documentation
TRAVIS_JOB_NUMBER=2610.1
TRAVIS_COMMIT_RANGE=0f9bc63bfc14...0f92122d8afb
2018-07-23 15:02:12 +00:00
Andreas Dangel 0f92122d8a Merge branch 'pr-1246' 2018-07-23 16:45:18 +02:00
Andreas Dangel e6e188f301 Add test cases for one character lambda parameters and for loop variables 2018-07-23 16:45:05 +02:00
Andreas Dangel a726a06e17 Merge branch 'pr-1242' 2018-07-23 16:30:10 +02:00
Andreas Dangel 80ea2deb7b Add license header 2018-07-23 16:29:58 +02:00
lsoncini 32b7cba79a abstraction for cpd with antlr 2018-07-21 20:10:24 -03:00
Andreas Dangel 0ee6b54d38 Update release notes, mention new rule, refs #109, the original PR 2018-07-21 19:51:18 +02:00
Andreas Dangel a02bfe8861 Combine the two rules into LinguisticNamingRule 2018-07-21 19:46:25 +02:00
Andreas Dangel ede63f0bcb Introduce property booleanPrefixes 2018-07-21 19:18:34 +02:00
Andreas Dangel beeeb74efb Simplify implementation of AttributeTypeAndNameIsInconsistent and MethodTypeAndNameIsInconsistent
Split test cases
2018-07-21 18:50:10 +02:00
BBG f49cd01637 fix comments 2018-07-22 00:45:16 +08:00
Andreas Dangel 7a25d9a910 Checkstyle, Pmd 2018-07-21 14:26:04 +02:00
Andreas Dangel 58446a2ecd Fix runtime errors (NPE, ClassCastException, IndexOutOfBounds) 2018-07-21 14:02:25 +02:00
Arda Aslan bd4095ed41 Added a naming rule called IsDoesNotReturnBoolean.
According to article "Linguistics Antipatterns: What They Are and How Developers Perceive Them",
a method starting with "isX" and not returning boolean introduces a code smell,
reduces maintainability mainly.

Add two linguistics codes smells. one related with methods and the other with variables (these two can be merged into 1 rule later)

Feedbacks are appreciated.
2018-07-21 12:53:31 +02:00
Clément Fournier 8b07d09dbf Fix main split pane color 2018-07-20 20:50:20 +02:00
BBG 3f030a2784 upload baseline of pmdtester automatically 2018-07-21 00:53:39 +08:00
Andreas Dangel 369c3fa0a0 Fix rule reference 2018-07-20 15:33:41 +02:00
Andreas Dangel 43ebc4c3c1 Update release notes - new rule ForLoopNaming (plsql-codestyle) 2018-07-20 15:28:27 +02:00
Andreas Dangel be76e2809f [plsql] Extend CursorForLoopNaming and rename to ForLoopNaming
It covers now both cursor for loops and index for loops.
2018-07-20 15:26:50 +02:00
Andreas Dangel b088c20a96 [plsql] CursorForLoopNaming: Add parameters "allowSimpleLoops" and "pattern" 2018-07-20 15:26:50 +02:00
Andreas Dangel adb7a42494 Update release notes, fixes #681 2018-07-20 15:26:48 +02:00
Andreas Dangel 387a8abca9 [plsql] Verify issue #681: it's fixed 2018-07-20 15:26:11 +02:00
Andreas Dangel ecb1ddb451 [plsql] SELECT INTO with parentheses
This fixes partially #1047
2018-07-20 15:26:11 +02:00
Andreas Dangel 58268812f6 [plsql] New Rule: CursorForLoopNaming 2018-07-20 15:26:09 +02:00
Andreas Dangel 0b264d5feb Fix encoding (from cp1252 -> utf-8) 2018-07-20 15:24:24 +02:00
Andreas Dangel 9c4486f2fb [plsql] Add basic support for CursorForLoop statement 2018-07-20 15:23:27 +02:00
Andreas Dangel c362f5a77f [java] Prepare for Java 11 2018-07-19 22:00:34 +02:00
Clément Fournier 0165b006c7 Styling improvements 2018-07-19 02:19:07 +02:00
Clément Fournier cab4234a1f Fix tests 2018-07-18 02:32:14 +02:00
Clément Fournier 0f9bc63bfc Rename confusing parameter 2018-07-18 02:05:13 +02:00
Clément Fournier ca6a543ed1 Allow length 1 identifiers in naming convention rules 2018-07-18 02:04:27 +02:00
Clément Fournier 2fd179024d Add resource links 2018-07-17 14:47:36 +02:00
Clément Fournier a261c41ae7 Rework everything 2018-07-17 14:36:11 +02:00
Clément Fournier 6a4200e158 Table view less conversion 2018-07-16 19:41:22 +02:00
Clément Fournier 829351cad7 Tab pane less conversion 2018-07-16 03:09:16 +02:00
Clément Fournier c2b35d6f77 Scroll bar less conversion 2018-07-16 03:04:44 +02:00
Travis CI (pmd-bot) 64ee977b6a Update documentation
TRAVIS_JOB_NUMBER=2596.1
TRAVIS_COMMIT_RANGE=bb3426f584e6...7153f1bbdffc
2018-07-15 21:04:50 +00:00
Juan Martín Sotuyo Dodero 7153f1bbdf Include new rule sin release ruleset 2018-07-15 17:49:25 -03:00
Juan Martín Sotuyo Dodero f168288abd Update changelog, mention new rules 2018-07-15 17:48:06 -03:00
Juan Martín Sotuyo Dodero da1f9a5e4e Merge branch 'pr-1214' 2018-07-15 17:41:38 -03:00
Juan Martín Sotuyo Dodero bb3426f584 Merge branch 'pr-1238' 2018-07-15 17:39:03 -03:00
Juan Martín Sotuyo Dodero 29c9121ecd Merge branch 'pr-1229' 2018-07-15 17:37:19 -03:00
Juan Martín Sotuyo Dodero 171a9904aa Update changelog, mention API changes 2018-07-15 17:36:59 -03:00
Juan Martín Sotuyo Dodero 1ae7deeda7 Merge branch 'pr-1239' 2018-07-15 17:32:45 -03:00
Juan Martín Sotuyo Dodero cc9d9f47bd Merge branch 'pr-1241' 2018-07-15 17:30:47 -03:00
Juan Martín Sotuyo Dodero da8b1374c0 Merge branch 'pr-1240' 2018-07-15 17:28:55 -03:00
Andreas Dangel e74539e5b5 Update release notes, fixes #981 2018-07-15 20:42:21 +02:00
Andreas Dangel 832687b042 Add the new tokens as unreserved keywords 2018-07-15 20:31:33 +02:00
Andreas Dangel 7e5cd27ac7 Update release notes, fixes #980 2018-07-15 19:38:08 +02:00
Andreas Dangel b0cc28eead Update release notes, fixes #1047 2018-07-15 19:30:19 +02:00
Andreas Dangel 19a3d5446f [plsql] plsql.ast.ParseException for CREATE TABLE
Fixes #980
2018-07-15 19:10:22 +02:00
Andreas Dangel 251abe223e [plsql] plsql.ast.ParseException when parsing VIEW
Fixes #981
2018-07-15 18:30:32 +02:00
Clément Fournier c7404c535b Simplify 2018-07-15 14:45:01 +02:00
Clément Fournier 5cdd9d5866 Update release notes, refs #1239 2018-07-15 14:40:38 +02:00
Clément Fournier 6221c563c6 Hide context menu arrows on autocomplete 2018-07-15 14:36:01 +02:00
Andreas Dangel 413c98c2f6 [plsql] plsql.ast.ParseException when parsing EXECUTE IMMEDIATE
Fixes #1047
2018-07-15 14:35:20 +02:00
Clément Fournier 388cb86e9f Autohide xpath completion popup 2018-07-11 17:45:32 +02:00
Clément Fournier db9f6bd730 Update release notes, refs #1182 2018-07-11 17:35:56 +02:00
Clément Fournier 503b54ba8d Merge branch 'pr-1182' 2018-07-11 17:35:19 +02:00
Clément Fournier 3c5a7f2bcc Cleanup 2018-07-11 17:29:46 +02:00
Clément Fournier e32935a6dc Merge branch 'pr-1231' 2018-07-09 22:33:06 +02:00
Clément Fournier 2a3bc7850f Update release notes, refs #1231 2018-07-09 22:32:37 +02:00
Ashish Rana 4e853cb994 Minor type fix 2018-07-09 15:21:20 +05:30
Travis CI (pmd-bot) 4ca905b4a0 Update documentation
TRAVIS_JOB_NUMBER=2574.1
TRAVIS_COMMIT_RANGE=f8e20d0ac5e1...80d9eb796e99
2018-07-09 04:25:18 +00:00
Juan Martín Sotuyo Dodero 80d9eb796e Merge branch 'pr-1223' 2018-07-09 01:08:44 -03:00
Clément Fournier 04ff77ce53 Fix tests of ClassTypeResolver
We now allow findDescendantsOfType to match subtypes
2018-07-09 01:08:04 +02:00
Andreas Dangel f8e20d0ac5 Merge branch 'pr-1220' 2018-07-08 10:38:55 +02:00
Andreas Dangel 7821b3c80e Update release notes, refs #1220, fixes #1216 2018-07-08 10:38:22 +02:00
Andreas Dangel 6323724da4 [dogfood] Upgrade pmd to 6.5.0 2018-07-08 10:29:11 +02:00
Andreas Dangel f604fcb989 Merge branch 'pr-1219' 2018-07-08 10:11:02 +02:00
Andreas Dangel 809110a092 Update release notes, refs #1219, fixes #1217 2018-07-08 10:10:55 +02:00
Clément Fournier 3ec2cf4c59 Fix UncommentedEmptyMethodBody 2018-07-03 23:30:30 +02:00
Clément Fournier 07516ee8ac Deprecate isTernary on ConditionalExpression 2018-07-03 02:13:22 +02:00
Andreas Dangel d6ec50b20f [ci] Include travis build number and commit range in commit messages 2018-06-30 16:20:01 +02:00
Andreas Dangel 6996b8e51d [ci] Add more logging to build/deploy/release scripts 2018-06-30 16:05:55 +02:00
Andreas Dangel 2750716f7a Merge branch 'pr-1221' 2018-06-30 10:13:57 +02:00
Andreas Dangel 59145685d7 Update release notes, refs #1221, fixes #1215 2018-06-30 10:13:49 +02:00
Clément Fournier 9dc60df946 Minor fix 2018-06-30 02:39:23 +02:00
akshatbahety 7f3c93debe PMD DogFood 2018-06-30 02:40:03 +05:30
Clément Fournier 40f0c4d59b Fix toc links 2018-06-29 22:33:45 +02:00
Clément Fournier f07728fe9a Fix unnecessaryFQCN false positive 2018-06-29 18:35:05 +02:00
Clément Fournier b0bc21028d Fix cyclo miscounting ternaries 2018-06-29 17:10:49 +02:00
Clément Fournier 4b8dba86cf Fix startup bug 2018-06-27 20:33:17 +02:00
Clément Fournier 118ee1d69d Merge branch 'master' into pr-1182 2018-06-27 18:34:26 +02:00
Juan Martín Sotuyo Dodero c4cf90e4cb Merge branch 'pr-1210' 2018-06-27 12:07:50 -03:00
Clément Fournier 556de19bd8 Add examples 2018-06-27 13:25:48 +02:00
Clément Fournier c0d7085255 Fix typeres bug 2018-06-27 13:07:54 +02:00
Clément Fournier 66a4d8af94 Readd LongVariable to tests 2018-06-27 12:55:18 +02:00
Clément Fournier 9984ee99ec Add FormalParameterNC and LocalVariableNC
These split out VariableNamingConventions.
Still FieldNamingConventions to go.
2018-06-26 23:48:20 +02:00
Clément Fournier 1fb7fc5edd Fix intellij build 2018-06-26 22:17:04 +02:00
Juan Martín Sotuyo Dodero 552bd98e2f Merge branch 'pr-1213' 2018-06-26 12:51:37 -03:00
Andreas Dangel 34a5cbd529 [java] CommentDefaultAccessModifier false positive with nested interfaces (regression from 6.4.0)
Fixes #1211
2018-06-26 17:43:00 +02:00
Andreas Dangel 24f7d32941 Fix build in eclipse 2018-06-26 17:17:43 +02:00
Clément Fournier 80e27d049a Add doc to some AST nodes 2018-06-26 12:21:22 +02:00
Andreas Dangel 38f966d3b6 Fix typo in release script 2018-06-26 09:44:02 +02:00
Andreas Dangel 7a6bc49826 Prepare next development version 2018-06-26 09:39:48 +02:00
Andreas Dangel 444beeb220 [maven-release-plugin] prepare for next development iteration 2018-06-26 09:34:01 +02:00
akshatbahety edeefa70f0 Minor Fix 2018-06-25 18:50:26 +05:30
akshatbahety 9c71a70294 Minor Fix 2018-06-20 21:02:42 +05:30
akshatbahety 978d77a462 Minor Fix 2018-06-20 17:42:57 +05:30
akshatbahety 39ec32ea63 Minor Fix 2018-06-15 15:25:47 +05:30
akshatbahety 7e07208366 Minor fixes 2018-06-14 23:09:13 +05:30
akshatbahety 2db426fb0c Minor Removal Fix 2018-06-14 18:57:35 +05:30
akshatbahety 32136e0e9e Bug Fixes 2018-06-14 18:16:12 +05:30
akshatbahety 4bb34b1c8e Minor Update 2018-06-14 17:13:33 +05:30
akshatbahety 1e839a6c04 Display Autocomplete near carat , it's a hack 2018-06-14 03:22:18 +05:30
akshatbahety ee2678a210 Minor fixes , working on others 2018-06-14 00:28:43 +05:30
akshatbahety 23d000536c Minor fixes 2018-06-13 17:29:27 +05:30
akshatbahety da24020ad9 Minor fixes 2018-06-13 16:42:10 +05:30
akshatbahety 3ec5136dd9 Highlight the suggestions , some bugs fixing them 2018-06-13 16:39:52 +05:30
akshatbahety 0447fd3ddb String Filter and Replace Update 2018-06-13 02:36:13 +05:30
akshatbahety a3d8a806a0 Minor Fixes , Fixed the AutoCorrect String Bug 2018-06-13 00:48:48 +05:30
akshatbahety 05a733d65d String Filtering , I think this is working 2018-06-12 20:45:16 +05:30
akshatbahety a5c83089d3 Minor Fixes 2018-06-12 17:26:17 +05:30
akshatbahety a7113b79c4 Some PR Fixes as suggested , still working on others 2018-06-12 16:08:06 +05:30
akshatbahety cbf8e6ac4a PR fixes 2018-06-12 06:07:55 +05:30
akshatbahety 51e0180076 Minor Fixes 2018-06-11 14:42:40 +05:30
akshatbahety 2af2aaf74a Minor Changes 2018-06-11 05:13:54 +05:30
akshatbahety 48c4e2ae10 Basic functioning of autocomplete is ready 2018-06-11 04:57:04 +05:30
akshatbahety 44c464c961 Minor Update 2018-06-11 02:31:04 +05:30
akshatbahety 9770c8855d Got the String matching sorted 2018-06-11 02:04:32 +05:30
akshatbahety 7f99c20e1f Git issue 2018-06-10 19:03:55 +05:30
akshatbahety 67da35bf05 Minor Fixes 2018-06-10 18:56:12 +05:30
akshatbahety 2aaa468ba4 Minor Updates 2018-06-10 18:39:26 +05:30
akshatbahety 0a85e86e59 Made the changes as required , some pending 2018-06-10 18:30:18 +05:30
akshatbahety 6a88b5d671 The basic working is there the suggestions are being filtered on the text entered by the user but I think there could be a better way (maybe or maybe my approach is good) need to revamp somethings in the UI @oowekyala need some guidance here. 2018-06-09 18:02:17 +05:30
akshatbahety eddb9bedfe Xpath suggestions , under progress 2018-06-09 16:46:22 +05:30
akshatbahety 7a6e40cd04 Start on the autocomplete feature made basic UI upgrade to show the popup items for suggestions working on positioning the context menu directly under the code 2018-06-08 21:45:16 +05:30
357 changed files with 12413 additions and 1596 deletions

No files matched your search

+2
View File
@@ -11,3 +11,5 @@ bin/
*.patch
*/src/site/site.xml
pmd-core/dependency-reduced-pom.xml
.bundle
vendor
+37 -14
View File
@@ -1,5 +1,3 @@
dist: trusty
sudo: false
addons:
ssh_known_hosts:
- web.sourceforge.net
@@ -10,27 +8,51 @@ env:
global:
- secure: KBEuB6U1p5RQXSYe157AwydFr/zpXQPA0IChVCgZV+X1mMyy9ZtrjH1J1AXuviseDDXDbaT25sRnsvpl82rfRw2xOkMGXHy4N95/ylTSr8DjHxTao71BhXsvFycNobFva5y2EGNWqDvpS8I2oSZo7Qk4la3yep3rcJQvcy6RDbbhpDTbL1QMFyadunIBm0WtqbunrMqtjSqaoPsXz8TiQuxHvX4vEXzVbaxV1QQt79Vi+daa6wAV3mRQAugnx+UffsC8JqMxgm06usWeJgCJzxgm8E7clZCLmf53B2TL8dK6bIYbqyvOY3uFxitsTG0d8Z0GOJwXBgZNgbniTRO8ZJSty5eZP8LBybbjVLSL25DNTWtCjADUL/uySnXIEidlMt2N/3QmH7zrGAfAk/tIwKpdRca2GLLydeXf6PSkiahnPEkIY/QupcsOLELhdifpdOjb8QW1OenA+vUbNM9dccLwKnX6Fj9cu4VQG601AcYDr2eyhq8WYkr3wYdw/6KdUa3hmplowTBs+qguppP+eOSgGuEsy38KLtqnvm6WlHy6tcLmcVYKG3DmR1b7TWXsOXC6/VMH8BHBkvsF1QdRg9+Cgx07vX3Hw7roPiYzmaO9Ajs20ATsUfRskMuWCTeTSK5pN8X27veRCZlhFjeKQMDdmfVwzpAfRgKsl3TEn1I=
- secure: U1DfAv6acUUWe+dao/ZSDUX64JRadNJY16rITsdrM4ZNAJSuXpEY3p/LWcYjN7D49YmyutbXH9+L3KKQUQGrGXj9QTarfYvd8ZsKt4FK8yv7AFy+RQNIbAjNEHBzHx15p+srMheTaetl7aLwY0qhF+D/RtGapxHKyY4dBHrb0lp8VGyiCiL7Aop8GGskosi1mtirPBp/BStPZ2bEyxG0QzU5SsVWkJWwV9aWLPVAR/n7Xgx/6Gjl6Fed2c/WSrWi4vchm3Ny8pfTweOax3PGYYjBVxIfuX0mqmwuJsY7gNfXCfN3dPiPKGJPFy1pC+LGyGkklO5ReKFLd4O1ME6fU0dlIGfD6n+Q4H6/w9FHXegcKTfWIJm/MFa6vA/tJM5R6zJQuiTQJboHm/UmS/iQj76z0p6sK15Xp5vFId+/dHKqa8xY+Bt6HiXy6z401HOc8QcYBAf7TqhqUt/ZE7HN4be46uR90KmzIrWz6wEoDW7HfwQ9ZMbs55zoOXrvekyE9/gXskypO0p2JT3Y0vlvO27KQvIrSwI480kOVOrlyrYA+LZqlcKaayOuCuZh4lITQUYinUoZZict5joYthH+Cyh2zovoBpxsntDJdMnaZNLtSC7hlhpbMBYaT2y1O6vZH5Yix0mxuDvs/x6ogP5CNBeUYlXhaL+g4GnwKyr0ZA0=
- secure: "ElWjttpoMwqezP2zyHkx7CiPON/mRLUW7SsSlEqdlTUYRIaSaL7sShUORJUzj58U/Nnfi/eY4Rweo0CtVu20sG16s9B4adnmPS44LAitztybPR/co93gN9qb8jiIl41nVcOJq+Rut2Z4nr8AGRhVCG9Drg4+DreCqQ4DE5ZD6J99GN0IFGrREt59HQUlBlT9jD0AndK/1GQ6kWAenuSREE2P5ih59rf6FrrfddQO5iqyFFoaHek3JiOmpaLK+z7i4EvMKsAJEooFNuGhHVuyaJJRRZHAncGiQ+uW/yL7G5rY51G6YSNJczzEtfrRg+YrIUbokUPmifSIbnXO/AIZRAq1dMhA8exRc5n+75RB1X164qm4a+yggdybFBh0L59xu606PJQJAuWy+x10nled7FAVXiotxbB0r2bhlVmWFEN+FWPqXg2rVkHvw6+5PM67rG5g1LCgjKzb9I6JWPiVI+EMn8Pw8gryL2Sdqtl08Da0Ypbl2ZK/afU4CEPEKnrDc9ecXKjacehTYwGS48V213XvArcmoEpsyZDRSMTrvK3/e29GEaxoK/ZzWJylpeOtsICEEFYEBEiDsiIW4C50MIUPT2xHV6MaPQzhkuwrbQ6QFYzHzihBaiQuMmXUQ4DMb3fOPkNZAQHQo8CgJ78IcbCABAoGv9mu/fo2KoLo11U="
- secure: "gxI7W4V4fUPQLMCvecXXdet1/mCh6m0RIQMtErVVOnwxEEjeDmko/3rHSl+wk6IeFaaQKcmHJJSJEj+e5TgWRH1uuzCnbFHZhuH28ce/H0EqLJ3GTXeDEgFLzhh//T3ySOZChZELgJ67cKxZJNFMhBVOR2/QIGjZjdzvl36ugsu80Ak3XJb8HCm8D2P8Vuezz/OlCkSOGXaiqZXfflV/cuaLWuueGfQGW9x/UyDTNsuBdB7YnEcxOWt8RgB4JrcPGV7/etxLHXTw9IMEeUhQ/RsxLZHKNYt9cx/QOZkpXemhdT9L2pAIi77eO98x+yAfB1qV6T6IeDd/OiABUzfb7asNBwE+bYRuVkCiWLo3x3hs8FcgsPe4L10guxfRMJPxax9E7uYb9TFxtvc42dDWNyp1BVCtEtmjErO4CJeW97ukhgkUkPhzUZgQ2Gj5Tn4VRjQOQyzh/S/YsHyfxoAQrscc/3bq5PBmtdowyGQd5dsvShdpE6glf+HnBZ8TCw5BaxQuTjapQWjsGuJVCVsrNDtwOFy5UTfxK9OeTUsjwfO5JjkoIeqGyLHPnTMWyZ6EYa//nWPOU1KgVE6Hrzfr3zxEzL1nN/TYahzhKOxXE701W9YhTmhCVljMlSYioTUfTaXHgGLpojvSWlhsTbc3r0gj4NglqakIy7MKgQLgES8="
- secure: "otZkFNhApMofp2Jl2baZdpNEPcTa79Xc9wyOw1gl1+ubCLtOGr32FDUSr0HQWKrGXcYZR4bc0A80hx0/ykZ/twJaRAabcNYtjwRMDKKrp3plvp8RTZlB1QW85nsdmk3qmHACzc94wKnmcaDohM5FPxnWspZG5Y4ejYX4HEK6r1fwL4FjMPSLd5QW8yCaAc7dpBSm2UyIXuuDjkekXblJFe8ydbf9aF97WKJMCwqIs9Zo5oJa2pnWCw47ixwjVdkaH5x5727I+YmFqn5rjdEideUFEAlggqMaxuOtfYhuG/8k5W3Q/+WX+G7rEPTcemjmaosbbpoOUE0YUHV3Wi3R5D66NuWIpQwX6kw4rTwL0YIh//0aNb8jv4Z8KwkiTMrYuj0we5tXzARp3yYn56P0JBAm6BihNhfEBv06655Tg5LUsWqUTZCl3KJhwtO1N+OuOkE5qoZm59knq6DeZOsYWAVb3MpzklP06kXGYTjb44PVMUc6ynuuZjgPJDv/0906feA3REHBJVxd3PvJp1c8VvQSeW3ndghEz0akJHY/jxV1rJZAZC1ZeshYUpBNmh0sFDty/UE43IvIB4EInypQHyTtQvMc6LuLjTeu2E5ZMsA3udj66EMrYm4Y2eheJycSfttDqzhsKXIVJ4LmA/xtDR01cp1jsqbbZBhVI67rA40="
- secure: "mmHRnK/8CHfgtwaTN3MgjFD1R8EVQhIb/a0Aag3gPaHWW52Ex6xWG7GsF4kRcdzHdIdrQxHZTiDa2oVMWbnQ16CAu4dZJadwTxhBW4JmE1tsi2C6i+uwMBPvnKBXHwt+QOAqNB0L/ByYwWLkucSLoyRs6qU0i7sJ3ZC/EPCuLI8VfBlFUVegSbp2WmclmFnxOi5MKr15Zwd8BGgyWUsvd1OHxhvO3Xr/ZPO4R+1kIgyojloTMu6oGM/shYgsrUXgmI/WvZRTq+25SRCjUmATJtuDXXgVeJtYabi/+Zju5Z7K06oaKvFYM+BgZWPmGQkVCxKVjSlug0rx6+qgRKIf/B/cPxmQDS0ZZVDmDcbxeibBL9JhRqIDwDb0XS9t1qBXvIJ5E4ZmdX/XuvLCnC4xJptu/vHyKl1wbRM3dcXEBk8J0knJc4JvY2yupF3LS32sfEHftLwzr63U3/0dOQvsCSJRBy5zgI8ieABUZAeZmmaQ6RCGOTEYrGO2G4CCF2uVq4YdrCOsfmrb0DzH8llNMkXKzXlITRvmkuBlTRRKxGnPzS3vf0iicdAkmTiU5u7lArFFc7IKcW4ypO+RKDTUpq74K+UZBI9eBjV7Po368EO8epJ5aIx32a2kyS/hYWkS/dZh7I0fNZa2qBUceZO/KZGRjH4dQFW9t0J9Q7LLXJY="
- secure: "geOU/7VR83KYTOCR5XkgFqnHJEnXeB6hNDE7UFcN4ZsL9uVLhxlDVWV3ujJ87nyBzggG1KfSnUx11UwOQrbBl0K6sEXo/B2q5ytOsWoSLi7+0qm/uhhw/DTBOq57p8TIDKFM7rDhO7uajSn7Y86LeZkh9wIs5265Fh1yhCkiPbczDUMsX4P0GGg2qgkIKSBw4DZf6sPDc4xjJq/4/cLnjXo/K0ZYAIoSLqDfe1gmkzMtQlad+1t8Lwv/gOJ4BNRF4a5aEvGF6kbFovFoeFWCQTKlkn6VJtY+BETGKW2RH9efGeMs7JbBbNm+nnpoNsbJ0gdmGlhSbWT8enIm72/P0ThTBJWVcLJ30tUd0UeYD9C49wbJ3RHSxsoUKP9YhHJ+XKNx+8irkJ8LPCkNMQEFE153gEVvU7tCgah9Uq6laYZv9cQE0dWzNt3//Ymls8BzY38Ha4PbrIIJqEuWwnAX6ZgTgzVtXx1AJjkDFG9KFKPhN7NfNMbh7rn5C84a1h5zrIydm+6RcIBC+xTLDEiN7djiquf3PcNtyGLcO8dNN4Uv8iU0Jw8ch3+w0PJO53v5py+IS1V8pwwYaYF2iVPOoziS0tP8MsgYVGwpTZhvz3v8x0ge8r6KJE4zdvoPtCRNr2Oo3sJGYqkt86Hu6agKFiljP5AgJNx7iQD5GQn6J3w="
- secure: "gqyPF3d75JuwZptnQQQKO6rGUILXGO09y9dZhShdX8qq5Mexa2ISk77Y/b0yyAdhJMgEglls5cWlbHkwCAB0i4yL25RE5CtQUe4er+CIKwBIs0M56ghbcOwWAFB/cXeyyWmXDHBVnVUeKm7IJ34txsEclnMzQSR/DInSzsCFMUQok8HEaWZNssMjyRgo6goKGdG5vNWGfLLY7mKGMe/6PpYJD0G8k+Na08aX06ZWph38He8O3imUAngoQrxiSp0UYmnHDkigbV7S2LdZOsj7kMxkiyigzK/P1eygHVbFAhohLroaqS9B4CBK7QeOyup2vxVKqJVzFwOCylD0786CImvaG2ZYMtvJkapvaEE0mdMlyYpHgdIkmHZu28aMW7hXEhxHyBAxKuPcj5eGCGziO+ztCvfYIA9CGs1uA4KLrED7SahvB0oXnt3KTFdRc857cWcpp2NmRKihLzVdgHlmT8zcYaec3zP1VdMoa2bmLHoaZtAwvMTcAG56FcET1p7f9v+uiU88ZeptEjTJfpAWlq34tpwZXNyIQi5IROocSHM+PKTgLAsAMP5klGascr8E0sEzREl7tg8hqEwXKym/sVKyT+HMptA3UZcrZZhm07/cmQ0pUVvbV9QDb0MzU3O2wF7vT3U7R7Fb1u0LxMjblPyEazTp8ldabVRJREwlsDc="
- secure: "JIhuqaI0i+zvuqqXiQBHpuKr7AQ8jfk6Gbr8Qgiq4yJtdEWXZGxnAT9BmlbjkgT7ABXvLgxf2CIdUOMo1yYfBlxQL/y5+e89jaVpYF3tvNAzYQ1e12VzQRsd/jDb7qvm7tw3rDHEn3dSEot7Q6KbPcL6WzWJINVMCCmOgvq9gKHgE6Y5q5EgZ5rxiXyuO27ndzcbxaor4PIaiSzHO9+AJQ7p2zDLP+kG4nKVTBX0l9VoKiYFhIpIhpbigi3jyLDMDRiWpwTWZC6P8/RXfZg/lc5ADOuM2DM8oXPpZuqOa/g31LWQOSCuEnQ1G16vbLgipSPpgAc7jYWD5cywhG9dLkiKaZDh5x0meLM2RoAgz6eAnQfTTqJ68OM9o9yXjubEedsNpNRAr9/DXMd+fbh10W2vbvL5HCNB3lic3anehhR9le7PLuEKxg654wXt3KM2PZGVWbotIyBK0CvGzqGkppvwT23QdDDqSdkWuGQIhGQ0xBOdYkwebycxP5wwPUmObG+mymQ1Be2BXvmghttsiJdKlt4CVSYOJUMus6kU32G95hdTgKblsX4J1Of2i1nYsjyMKh3k945tqXwQrIsxOOQug0oIkz24zlLaOaQcorWtJ6Y1HPaZKpVIFUEF0y8Uq/O4oB2bOYC6WDUQfpj7nRG6xbi+BeBS84m1ttCEk4g="
matrix:
- BUILD=deploy
- BUILD=doc
- BUILD=sonar
- BUILD=coveralls
- secure: "VezxV+VdmbmtrQYT8AZIyg41WBROxuxpumerkcubADF7V4wV6lwx9Rd2G6yAr0VuHCNUUhS4m+gPFIsuiQbAhyupiEkwhzUYqk1tF+LITlLLPegLypjiLmhJMwGUNuDSSsih1Icmg9FzrP4VyzgGn9pBjoG9QYj1civBZeGwg++e/XDYlHMXrpd/UEfMKVB71JwB0tle4fKJZSvblIqP62yvbBaKHx6A4+ZWzJV5Vps0DoIeNtKCNmNNloKZVHfjbsvqSjnMYUJzkOzyPkM822q41N/D+3IAufO16+jH/W0vAZeN0e4GXiN5W+CVkr2Gbh0FwkVQcI3bekaOIn45XLUMLKdf+JsWDPKz9RraHelR9YxL5GoJ7ntwvmucxw0p8EVyJ/xLk/pBCP8iHq0Jb8//js25XHgxzzAWI37MErPAAGgTKZAVdAN0mGXbe63tWmwaBlEbK8h2A8di6abW5x6YHTkTo2BRlHUSTU8dE3VqTnpSkne5n1SlEa4g1Bci3J45M0/pLmHV6yCxCM5BrVXS5ByaB61py/umSbpmdIBFV6TM1MaKK3lAucQrR+8To/vCbm8XqPyujJdOR+ENIuuDgEU/Yh5Hv5SAODekUYaCp4pjfGzFADHQWVNDxIOXrwBN4OfSiAvRc1x6HXndOmNI4QtOxheuCRFFthq8VZI="
matrix:
fast_finish: true
include:
- name: "linux - mvn deploy"
os: linux
dist: trusty
sudo: false
env: BUILD=deploy
- name: "linux - build documentation"
os: linux
dist: trusty
sudo: false
env: BUILD=doc
- name: "linux - run sonar"
os: linux
dist: trusty
sudo: false
env: BUILD=sonar
- name: "linux - run coveralls"
os: linux
dist: trusty
sudo: false
env: BUILD=coveralls
- name: "macosx - mvn verify"
os: osx
env: BUILD=deploy
before_install:
- wget https://github.com/sormuras/bach/raw/master/install-jdk.sh
- bash .travis/setup-secrets.sh
- bash .travis/configure-maven.sh
# Install OracleJDK 10 - see https://sormuras.github.io/blog/2018-03-20-jdk-matrix.html
install: . ./install-jdk.sh -F 10 -L BCL
- rvm install 2.4.1
- rvm use 2.4.1
# Install OpenJDK 11 - see https://sormuras.github.io/blog/2018-03-20-jdk-matrix.html
install:
- . ./install-jdk.sh -F 11 -L GPL -W $HOME/jdk
- gem install bundler
- bundle install --with=release_notes_preprocessing
before_script: true
script: source .travis/build-$BUILD.sh
after_success: true
@@ -48,7 +70,7 @@ deploy:
on:
tags: true
repo: pmd/pmd
condition: "${TRAVIS_SECURE_ENV_VARS} = true && ${BUILD} != sonar"
condition: "${TRAVIS_SECURE_ENV_VARS} = true && ${BUILD} != sonar && ${BUILD} != coveralls"
after_deploy: bash .travis/release.sh
notifications:
@@ -67,7 +89,9 @@ notifications:
cache:
directories:
- "$HOME/.m2"
- vendor/bundle
- "$HOME/jdk"
- "$HOME/.rvm/"
# Secure Keys, that need to be set for snapshot builds
#
@@ -79,7 +103,6 @@ cache:
# PMD_SF_USER - the sourceforge user, which is used to upload created binaries to sf files section. Note: an ssh key is
# required. See "before_install".
#
#
# Secure Keys, that need to be set for releases:
#
# PMD_SF_APIKEY - used to make the new release the default file in the files section. See https://sourceforge.net/auth/preferences/
+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<ruleset name="All Java Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>Every java rule in PMD which is used for the regression tests with pmdtester</description>
<rule ref="category/java/bestpractices.xml" />
<rule ref="category/java/codestyle.xml" />
<rule ref="category/java/design.xml" />
<rule ref="category/java/documentation.xml" />
<rule ref="category/java/errorprone.xml" />
<rule ref="category/java/multithreading.xml" />
<rule ref="category/java/performance.xml" />
<rule ref="category/java/security.xml" />
</ruleset>
+2 -7
View File
@@ -4,7 +4,7 @@ set -e
source .travis/logger.sh
source .travis/common-functions.sh
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec | tail -1)
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
log_info "Building PMD Coveralls.io report ${VERSION} on branch ${TRAVIS_BRANCH}"
if ! travis_isPush; then
@@ -12,17 +12,12 @@ if ! travis_isPush; then
exit 0
fi
#
# for java9: enable all modules.
# coveralls plugin seems to need java.xml.bind module
echo "MAVEN_OPTS='-Xms1g -Xmx1g --add-modules java.se.ee'" > ${HOME}/.mavenrc
(
# disable fast fail, exit immediately, in this subshell
set +e
./mvnw clean install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
./mvnw test jacoco:report coveralls:report -Pcoveralls -B -V
./mvnw package jacoco:report coveralls:report -Pcoveralls -B -V
if [ $? -ne 0 ]; then
log_error "Error creating coveralls report"
+64 -6
View File
@@ -14,7 +14,11 @@ function push_docs() {
git config user.name "Travis CI (pmd-bot)"
git config user.email "andreas.dangel+pmd-bot@adangel.org"
git add -A docs
git commit -m "Update documentation"
MSG="Update documentation
TRAVIS_JOB_NUMBER=${TRAVIS_JOB_NUMBER}
TRAVIS_COMMIT_RANGE=${TRAVIS_COMMIT_RANGE}"
git commit -m "$MSG"
git push git@github.com:pmd/pmd.git HEAD:master
log_success "Successfully pushed docs update"
else
@@ -23,16 +27,41 @@ function push_docs() {
fi
}
function upload_baseline() {
log_info "Generating and uploading baseline for pmdtester..."
cd ..
pmdtester -m single -r ./pmd -p ${TRAVIS_BRANCH} -pc ./pmd/.travis/all-java.xml -l ./pmd/.travis/project-list.xml -f
cd target/reports
BRANCH_FILENAME="${TRAVIS_BRANCH/\//_}"
zip -q -r ${BRANCH_FILENAME}-baseline.zip ${BRANCH_FILENAME}/
rsync -avh ${BRANCH_FILENAME}-baseline.zip ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd-regression-tester/
if [ $? -ne 0 ]; then
log_error "Error while uploading ${BRANCH_FILENAME}-baseline.zip to sourceforge!"
log_error "Please upload manually: https://sourceforge.net/projects/pmd/files/pmd-regression-tester/"
else
log_success "Successfully uploaded ${BRANCH_FILENAME}-baseline.zip to sourceforge"
fi
}
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec | tail -1)
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
log_info "Building PMD ${VERSION} on branch ${TRAVIS_BRANCH}"
MVN_BUILD_FLAGS="-B -V"
if travis_isPullRequest; then
if travis_isOSX; then
log_info "The build is running on OSX"
./mvnw verify $MVN_BUILD_FLAGS
elif travis_isPullRequest; then
log_info "This is a pull-request build"
./mvnw verify $MVN_BUILD_FLAGS
(
set +e
log_info "Running danger"
bundle exec danger --verbose
)
elif travis_isPush; then
@@ -63,12 +92,41 @@ elif travis_isPush; then
if [ $? -ne 0 ]; then
log_error "Error while uploading pmd-*-${VERSION}.zip to sourceforge!"
log_error "Please upload manually: https://sourceforge.net/projects/pmd/files/pmd/"
else
log_success "Successfully uploaded pmd-*-${VERSION}.zip to sourceforge"
fi
rsync -avh docs/pages/release_notes.md ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd/${VERSION}/ReadMe.md
if [ $? -ne 0 ]; then
)
( # UPLOAD RELEASE NOTES TO SOURCEFORGE
# This handler is called if any command fails
function release_notes_fail() {
log_error "Error while uploading release_notes.md as ReadMe.md to sourceforge!"
log_error "Please upload manually: https://sourceforge.net/projects/pmd/files/pmd/"
fi
}
# exit subshell after trap
set -e
trap release_notes_fail ERR
RELEASE_NOTES_TMP=$(mktemp -t)
.travis/render_release_notes.rb docs/pages/release_notes.md | tail -n +6 > "$RELEASE_NOTES_TMP"
rsync -avh "$RELEASE_NOTES_TMP" ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd/${VERSION}/ReadMe.md
log_success "Successfully uploaded release_notes.md as ReadMe.md to sourceforge"
)
(
# disable fast fail, exit immediately, in this subshell
set +e
upload_baseline
true
)
+11 -2
View File
@@ -4,7 +4,7 @@ set -e
source .travis/logger.sh
source .travis/common-functions.sh
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec | tail -1)
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
log_info "Building PMD Documentation ${VERSION} on branch ${TRAVIS_BRANCH}"
if ! travis_isPush; then
@@ -25,6 +25,8 @@ echo -e "\n\n"
log_info "Creating pmd-doc archive..."
mv _site pmd-doc-${VERSION}
zip -qr pmd-doc-${VERSION}.zip pmd-doc-${VERSION}/
log_success "Successfully created pmd-doc-${VERSION}.zip:"
ls -lh pmd-doc-${VERSION}.zip
(
# disable fast fail, exit immediately, in this subshell
@@ -37,6 +39,8 @@ zip -qr pmd-doc-${VERSION}.zip pmd-doc-${VERSION}/
if [ $? -ne 0 ]; then
log_error "Couldn't upload pmd-doc-${VERSION}.zip!"
log_error "Please upload manually: https://sourceforge.net/projects/pmd/files/pmd/"
else
log_success "Successfully uploaded pmd-doc-${VERSION}.zip to sourceforge"
fi
fi
@@ -59,6 +63,7 @@ zip -qr pmd-doc-${VERSION}.zip pmd-doc-${VERSION}/
#
# Push the generated site to gh-pages branch
# only for snapshot builds from branch master
#
if [[ "${VERSION}" == *-SNAPSHOT && "${TRAVIS_BRANCH}" == "master" ]] && has_docs_change; then
echo -e "\n\n"
@@ -73,7 +78,11 @@ if [[ "${VERSION}" == *-SNAPSHOT && "${TRAVIS_BRANCH}" == "master" ]] && has_doc
git config user.name "Travis CI (pmd-bot)"
git config user.email "andreas.dangel+pmd-bot@adangel.org"
git add -A
git commit -q -m "Update documentation"
MSG="Update documentation
TRAVIS_JOB_NUMBER=${TRAVIS_JOB_NUMBER}
TRAVIS_COMMIT_RANGE=${TRAVIS_COMMIT_RANGE}"
git commit -q -m "$MSG"
git push git@github.com:pmd/pmd.git HEAD:gh-pages
log_success "Successfully pushed site to https://pmd.github.io/pmd/"
)
+7 -7
View File
@@ -4,7 +4,7 @@ set -e
source .travis/logger.sh
source .travis/common-functions.sh
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec | tail -1)
VERSION=$(./mvnw -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
log_info "Building PMD Sonar ${VERSION} on branch ${TRAVIS_BRANCH}"
if ! travis_isPush; then
@@ -12,17 +12,17 @@ if ! travis_isPush; then
exit 0
fi
#
# for java9: enable all modules.
# sonar plugin seems to need java.xml.bind module
echo "MAVEN_OPTS='-Xms1g -Xmx1g --add-modules java.se.ee'" > ${HOME}/.mavenrc
(
# for sonar, we need to use java10, until sonarjava 5.8.0 is released (Sept. 2018)
JAVA_HOME=$(bash ./install-jdk.sh -F 10 -L GPL -W $HOME/jdk --emit-java-home | tail --lines 1)
export JAVA_HOME
export PATH=${JAVA_HOME}/bin:$PATH
# disable fast fail, exit immediately, in this subshell
set +e
# Run the build
./mvnw clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONAR_TOKEN} -B -V
./mvnw clean package sonar:sonar -Dsonar.login=${SONAR_TOKEN} -Psonar -B -V
if [ $? -ne 0 ]; then
log_error "Error updating sonar..."
+9
View File
@@ -10,6 +10,7 @@ echo "TRAVIS_SECURE_ENV_VARS: ${TRAVIS_SECURE_ENV_VARS}"
echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}"
echo "TRAVIS_TAG: ${TRAVIS_TAG}"
echo "TRAVIS_ALLOW_FAILURE: ${TRAVIS_ALLOW_FAILURE}"
echo "TRAVIS_OS_NAME: ${TRAVIS_OS_NAME}"
function travis_isPullRequest() {
if [ "${TRAVIS_REPO_SLUG}" != "pmd/pmd" ] || [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
@@ -27,6 +28,14 @@ function travis_isPush() {
fi
}
function travis_isOSX() {
if [[ $TRAVIS_OS_NAME == 'osx' ]]; then
return 0
else
return 1
fi
}
function has_docs_change() {
if [[ $(git diff --name-only ${TRAVIS_COMMIT_RANGE}) = *"docs/"* ]]; then
log_info "Checking for changes in docs/ (TRAVIS_COMMIT_RANGE=${TRAVIS_COMMIT_RANGE}): changes found"
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<projectlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="projectlist_1_0_0.xsd">
<description>Standard Projects</description>
<project>
<name>checkstyle</name>
<type>git</type>
<connection>https://github.com/checkstyle/checkstyle</connection>
<tag>checkstyle-8.10</tag>
</project>
<project>
<name>spring-framework</name>
<type>git</type>
<connection>https://github.com/spring-projects/spring-framework</connection>
<tag>v5.0.6.RELEASE</tag>
</project>
<!---<project>
<name>openjdk10</name>
<type>hg</type>
<connection>http://hg.openjdk.java.net/jdk10/jdk10/jdk</connection>
<webview-url>http://hg.openjdk.java.net/jdk10/jdk10/jdk/file/777356696811</webview-url>
</project> -->
</projectlist>
+10 -4
View File
@@ -28,11 +28,13 @@ if [ "${BUILD}" = "deploy" ]; then
true
)
# renders, and skips the first 6 lines - the Jekyll front-matter
RENDERED_RELEASE_NOTES=$(bundle exec .travis/render_release_notes.rb docs/pages/release_notes.md | tail -n +6)
# Assumes, the release has already been created by travis github releases provider
RELEASE_ID=$(curl -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" https://api.github.com/repos/pmd/pmd/releases/tags/pmd_releases/${RELEASE_VERSION}|jq ".id")
RELEASE_NAME="PMD ${RELEASE_VERSION} ($(date -u +%d-%B-%Y))"
RELEASE_BODY=$(tail -n +6 docs/pages/release_notes.md) # skips the first 6 lines - the heading 'PMD Release Notes'
RELEASE_BODY="$RENDERED_RELEASE_NOTES"
RELEASE_BODY="${RELEASE_BODY//'\'/\\\\}"
RELEASE_BODY="${RELEASE_BODY//$'\r'/}"
RELEASE_BODY="${RELEASE_BODY//$'\n'/\\r\\n}"
@@ -48,13 +50,14 @@ log_info "Updating release at https://api.github.com/repos/pmd/pmd/releases/${RE
RESPONSE=$(curl -i -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" -H "Content-Type: application/json" --data "@release-edit-request.json" -X PATCH https://api.github.com/repos/pmd/pmd/releases/${RELEASE_ID})
if [[ "$RESPONSE" != *"HTTP/1.1 200"* ]]; then
log_error "Github Request failed!"
echo "Request:"
cat release-edit-request.json
echo
echo "Response:"
echo "$RESPONSE"
else
echo "Update OK"
log_success "Update OK"
fi
fi
@@ -76,7 +79,9 @@ mkdir pmd.github.io
git remote add origin git@github.com:pmd/pmd.github.io.git
echo "latest/" > .git/info/sparse-checkout
git pull --depth=1 origin master
rsync -a ../docs/pmd-doc-${RELEASE_VERSION}/ pmd-${RELEASE_VERSION}/
log_info "Copying documentation from ../docs/pmd-doc-${RELEASE_VERSION}/ ..."
rsync -ah --stats ../docs/pmd-doc-${RELEASE_VERSION}/ pmd-${RELEASE_VERSION}/
git status
git add pmd-${RELEASE_VERSION}
git commit -q -m "Added pmd-${RELEASE_VERSION}"
@@ -85,6 +90,7 @@ mkdir pmd.github.io
git add latest
git commit -q -m "Copying pmd-${RELEASE_VERSION} to latest"
log_info "Generating sitemap.xml"
../.travis/sitemap_generator.sh > sitemap.xml
git add sitemap.xml
git commit -q -m "Generated sitemap.xml"
@@ -101,7 +107,7 @@ mkdir pmd.github.io
log_info "Uploading the new release to pmd.sourceforge.net which serves as an archive..."
travis_wait rsync -ah --stats pmd-doc-${VERSION}/ ${PMD_SF_USER}@web.sourceforge.net:/home/project-web/pmd/htdocs/pmd-${RELEASE_VERSION}/
travis_wait rsync -ah --stats docs/pmd-doc-${RELEASE_VERSION}/ ${PMD_SF_USER}@web.sourceforge.net:/home/project-web/pmd/htdocs/pmd-${RELEASE_VERSION}/
if [ $? -ne 0 ]; then
log_error "Uploading documentation to pmd.sourceforge.net failed..."
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env ruby
# Renders the release notes for Github releases,
# and prints them to standard output
# Doesn't trim the header, which is done in shell
# Args:
# ARGV[0] : location of the file to render
require "liquid"
require "safe_yaml"
# include some custom liquid extensions
require_relative "../docs/_plugins/rule_tag"
require_relative "../docs/_plugins/tocmaker_block"
require_relative "../docs/_plugins/custom_filters"
# explicitly setting safe mode to get rid of the warning
SafeYAML::OPTIONS[:default_mode] = :safe
# START OF THE SCRIPT
unless ARGV.length == 1 && File.exists?(ARGV[0])
print "\e[31m[ERROR] In #{$0}: The first arg must be a valid file name\e[0m"
exit 1
end
release_notes_file = ARGV[0]
liquid_env = {
# wrap the config under a "site." namespace because that's how jekyll does it
'site' => YAML.load_file("docs/_config.yml"),
# This signals the links in {% rule %} tags that they should be rendered as absolute
'is_release_notes_processor' => true
}
to_render = File.read(release_notes_file)
rendered = Liquid::Template.parse(to_render).render(liquid_env)
print(rendered)
+3 -1
View File
@@ -6,7 +6,9 @@
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<servers>
<server>
<id>ossrh</id>
+3 -2
View File
@@ -1,7 +1,8 @@
# How to build PMD
PMD uses [Maven](https://maven.apache.org/) and requires [Java 9](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
for building.
PMD uses [Maven](https://maven.apache.org/) and requires at least Java 10 for building.
You can get Java 10 from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
or from the [OpenJDK Project](http://jdk.java.net).
PMD uses the [maven wrapper](https://github.com/takari/maven-wrapper), so you can simply build PMD as following:
+52
View File
@@ -0,0 +1,52 @@
require 'pmdtester'
require 'time'
require 'logger'
@logger = Logger.new(STDOUT)
def run_pmdtester
Dir.chdir('..') do
argv = ['-r', './pmd', '-b', "#{ENV['TRAVIS_BRANCH']}", '-p', 'FETCH_HEAD', '-m', 'online', '-a']
begin
runner = PmdTester::Runner.new(argv)
@new_errors, @removed_errors, @new_violations, @removed_violations = runner.run
upload_report
rescue StandardError => e
warn("Running pmdtester failed, this message is mainly used to remind the maintainers of PMD.")
@logger.error "Running pmdtester failed: #{e.inspect}"
end
end
end
def upload_report
Dir.chdir('target/reports') do
tar_filename = "pr-#{ENV['TRAVIS_PULL_REQUEST']}-diff-report-#{Time.now.strftime("%Y-%m-%dT%H-%M-%SZ")}.tar"
unless Dir.exist?('diff/')
message("No java rules are changed!", sticky: true)
return
end
`tar -cf #{tar_filename} diff/`
report_url = `curl -u #{ENV['CHUNK_TOKEN']} -T #{tar_filename} chunk.io`
if $?.success?
@logger.info "Successfully uploaded #{tar_filename} to chunk.io"
# set value of sticky to true and the message is kept after new commits are submited to the PR
message("This changeset introduces #{@new_violations} new violations and #{@new_errors} new errors,\n" +
"removes #{@removed_violations} violations and #{@removed_errors} errors. [Full report](#{report_url.chomp}/diff/index.html)", sticky: true)
else
@logger.error "Error while uploading #{tar_filename} to chunk.io: #{report_url}"
warn("Uploading the diff report failed, this message is mainly used to remind the maintainers of PMD.")
end
end
end
# Perform regression testing
can_merge = github.pr_json['mergeable']
if can_merge
run_pmdtester
else
warn("This PR cannot be merged yet.", sticky: false)
end
# vim: syntax=ruby
+14
View File
@@ -0,0 +1,14 @@
source 'https://rubygems.org/'
gem 'pmdtester', :git => 'https://github.com/pmd/pmd-regression-tester.git'
gem 'danger', '~> 5.6', '>= 5.6'
# This group is only needed for rendering release notes
# this happens during release (.travis/release.sh and do-release.sh)
# but also during regular builds (.travis/build-deploy.sh)
group :release_notes_preprocessing do
gem 'liquid', '>=4.0.0'
gem 'safe_yaml', '>=1.0'
end
# vim: syntax=ruby
+23 -37
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Make sure, everything is English...
export LANG=C.UTF8
export LANG=C.UTF-8
# verify the current directory
if [ ! -f pom.xml -o ! -d ../pmd.github.io ]; then
@@ -66,21 +66,24 @@ export RELEASE_VERSION
export DEVELOPMENT_VERSION
export CURRENT_BRANCH
RELEASE_RULESET="pmd-core/src/main/resources/rulesets/releases/${RELEASE_VERSION//\./}.xml"
echo "* Update version/release info in **docs/pages/release_notes.md**."
echo
echo " ## $(date -u +%d-%B-%Y) - ${RELEASE_VERSION}"
echo
# install bundles needed for rendering release notes
bundle install --with=release_notes_preprocessing --path vendor/bundle
RELEASE_RULESET="pmd-core/src/main/resources/rulesets/releases/${RELEASE_VERSION//\./}.xml"
export RELEASE_NOTES_POST="_posts/$(date -u +%Y-%m-%d)-PMD-${RELEASE_VERSION}.md"
echo "Generating ../pmd.github.io/${RELEASE_NOTES_POST}..."
NEW_RELEASE_NOTES=$(bundle exec .travis/render_release_notes.rb docs/pages/release_notes.md | tail -n +6)
echo "${NEW_RELEASE_NOTES}" > ../pmd.github.io/${RELEASE_NOTES_POST}
echo "* Update date info in **docs/_config.yml**."
echo " date: $(date -u +%d-%B-%Y)"
echo
echo "* Ensure all the new rules are listed in a the proper file:"
echo "* Ensure all the new rules are listed in the proper file:"
echo " ${RELEASE_RULESET}"
echo
echo "* Update **../pmd.github.io/_config.yml** to mention the new release"
echo
echo "* Add **../pmd.github.io/_posts/$(date -u +%Y-%m-%d)-PMD-${RELEASE_VERSION}.md"
echo
echo "Press enter to continue..."
read
echo "Committing current changes (pmd)"
@@ -94,7 +97,7 @@ git commit -a -m "Prepare pmd release ${RELEASE_VERSION}"
(
echo "Committing current changes (pmd.github.io)"
cd ../pmd.github.io
git add _posts/$(date -u +%Y-%m-%d)-PMD-${RELEASE_VERSION}.md
git add ${RELEASE_NOTES_POST}
git commit -a -m "Prepare pmd release ${RELEASE_VERSION}"
git push
)
@@ -109,18 +112,6 @@ echo
echo "Tag has been pushed.... now check travis build: <https://travis-ci.org/pmd/pmd>"
echo
echo
echo "Submit news to SF on <https://sourceforge.net/p/pmd/news/> page. You can use"
echo "the following template:"
echo
cat <<EOF
PMD ${RELEASE_VERSION} released
* Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F${RELEASE_VERSION}
* Documentation: https://pmd.github.io/pmd-${RELEASE_VERSION}/
And Copy-Paste the release notes
EOF
echo
echo "Press enter to continue..."
read
@@ -128,7 +119,6 @@ echo
echo "Check the milestone on github:"
echo "<https://github.com/pmd/pmd/milestones>"
echo " --> move any open issues to the next milestone, close the current milestone"
echo " --> Maybe there are some milestones on sourceforge, too: <https://sourceforge.net/p/pmd/bugs/milestones>."
echo
echo
echo "Prepare Next development version:"
@@ -140,7 +130,6 @@ read
# update release_notes_old
OLD_RELEASE_NOTES=$(tail -n +8 docs/pages/release_notes_old.md)
NEW_RELEASE_NOTES=$(tail -n +6 docs/pages/release_notes.md)
echo "$(head -n 7 docs/pages/release_notes_old.md)" > docs/pages/release_notes_old.md
echo "$NEW_RELEASE_NOTES" >> docs/pages/release_notes_old.md
echo >> docs/pages/release_notes_old.md
@@ -154,18 +143,13 @@ permalink: pmd_release_notes.html
keywords: changelog, release notes
---
## ????? - ${DEVELOPMENT_VERSION}
## {{ site.pmd.date }} - {{ site.pmd.version }}
The PMD team is pleased to announce PMD ${DEVELOPMENT_VERSION%-SNAPSHOT}.
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
This is a minor release.
This is a {{ site.pmd.release_type }} release.
### Table Of Contents
* [New and noteworthy](#new-and-noteworthy)
* [Fixed Issues](#fixed-issues)
* [API Changes](#api-changes)
* [External Contributions](#external-contributions)
{% tocmaker is_release_notes_processor %}
### New and noteworthy
@@ -175,25 +159,28 @@ This is a minor release.
### External Contributions
{% endtocmaker %}
EOF
git commit -a -m "Prepare next development version"
git push origin ${CURRENT_BRANCH}
./mvwn -B release:clean
./mvnw -B release:clean
echo
echo
echo
echo "Verify the new release on github: <https://github.com/pmd/pmd/releases/tag/pmd_releases/${RELEASE_VERSION}>"
echo
echo "* Submit news to SF on <https://sourceforge.net/p/pmd/news/> page. Use same text as in the email below."
echo "* Send out an announcement mail to the mailing list:"
echo
echo "Send out an announcement mail to the mailing list:"
echo "To: PMD Developers List <pmd-devel@lists.sourceforge.net>"
echo "Subject: [ANNOUNCE] PMD ${RELEASE_VERSION} Released"
echo
echo " * Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F${RELEASE_VERSION}"
echo " * Documentation: https://pmd.github.io/pmd-${RELEASE_VERSION}/"
echo
echo " And Copy-Paste the release notes"
echo "$NEW_RELEASE_NOTES"
echo
echo
echo
@@ -203,4 +190,3 @@ echo "------------------------------------------"
echo
+27 -28
View File
@@ -13,10 +13,11 @@ GEM
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
commonmarker (0.17.9)
commonmarker (0.17.11)
ruby-enum (~> 0.5)
concurrent-ruby (1.0.5)
dnsruby (1.60.2)
dnsruby (1.61.2)
addressable (~> 2.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
@@ -26,29 +27,29 @@ GEM
execjs (2.7.0)
faraday (0.15.2)
multipart-post (>= 1.2, < 3)
ffi (1.9.23)
ffi (1.9.25)
forwardable-extended (2.6.0)
gemoji (3.0.0)
github-pages (186)
github-pages (191)
activesupport (= 4.2.10)
github-pages-health-check (= 1.8.1)
jekyll (= 3.7.3)
jekyll-avatar (= 0.5.0)
jekyll-avatar (= 0.6.0)
jekyll-coffeescript (= 1.1.1)
jekyll-commonmark-ghpages (= 0.1.5)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.9.3)
jekyll-feed (= 0.10.0)
jekyll-gist (= 1.5.0)
jekyll-github-metadata (= 2.9.4)
jekyll-mentions (= 1.3.0)
jekyll-mentions (= 1.4.1)
jekyll-optional-front-matter (= 0.3.0)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.2.0)
jekyll-redirect-from (= 0.13.0)
jekyll-redirect-from (= 0.14.0)
jekyll-relative-links (= 0.5.3)
jekyll-remote-theme (= 0.3.1)
jekyll-sass-converter (= 1.5.2)
jekyll-seo-tag (= 2.4.0)
jekyll-seo-tag (= 2.5.0)
jekyll-sitemap (= 1.2.0)
jekyll-swiss (= 0.4.0)
jekyll-theme-architect (= 0.1.1)
@@ -65,12 +66,12 @@ GEM
jekyll-theme-tactile (= 0.1.1)
jekyll-theme-time-machine (= 0.1.1)
jekyll-titles-from-headings (= 0.5.1)
jemoji (= 0.9.0)
kramdown (= 1.16.2)
jemoji (= 0.10.1)
kramdown (= 1.17.0)
liquid (= 4.0.0)
listen (= 3.1.5)
mercenary (~> 0.3)
minima (= 2.4.1)
minima (= 2.5.0)
nokogiri (>= 1.8.2, < 2.0)
rouge (= 2.2.1)
terminal-table (~> 1.4)
@@ -80,7 +81,7 @@ GEM
octokit (~> 4.0)
public_suffix (~> 2.0)
typhoeus (~> 1.3)
html-pipeline (2.8.0)
html-pipeline (2.8.4)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
@@ -99,7 +100,7 @@ GEM
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-avatar (0.5.0)
jekyll-avatar (0.6.0)
jekyll (~> 3.0)
jekyll-coffeescript (1.1.1)
coffee-script (~> 2.2)
@@ -113,15 +114,14 @@ GEM
rouge (~> 2)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.9.3)
jekyll-feed (0.10.0)
jekyll (~> 3.3)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-github-metadata (2.9.4)
jekyll (~> 3.1)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.3.0)
activesupport (~> 4.0)
jekyll-mentions (1.4.1)
html-pipeline (~> 2.3)
jekyll (~> 3.0)
jekyll-optional-front-matter (0.3.0)
@@ -129,7 +129,7 @@ GEM
jekyll-paginate (1.1.0)
jekyll-readme-index (0.2.0)
jekyll (~> 3.0)
jekyll-redirect-from (0.13.0)
jekyll-redirect-from (0.14.0)
jekyll (~> 3.3)
jekyll-relative-links (0.5.3)
jekyll (~> 3.3)
@@ -138,7 +138,7 @@ GEM
rubyzip (>= 1.2.1, < 3.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.4.0)
jekyll-seo-tag (2.5.0)
jekyll (~> 3.3)
jekyll-sitemap (1.2.0)
jekyll (~> 3.3)
@@ -187,12 +187,11 @@ GEM
jekyll (~> 3.3)
jekyll-watch (2.0.0)
listen (~> 3.0)
jemoji (0.9.0)
activesupport (~> 4.0, >= 4.2.9)
jemoji (0.10.1)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (~> 3.0)
kramdown (1.16.2)
kramdown (1.17.0)
liquid (4.0.0)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
@@ -200,15 +199,15 @@ GEM
ruby_dep (~> 1.2)
mercenary (0.3.6)
mini_portile2 (2.3.0)
minima (2.4.1)
minima (2.5.0)
jekyll (~> 3.5)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.11.3)
multipart-post (2.0.0)
nokogiri (1.8.2)
nokogiri (1.8.4)
mini_portile2 (~> 2.3.0)
octokit (4.9.0)
octokit (4.11.0)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.1)
forwardable-extended (~> 2.6)
@@ -220,9 +219,9 @@ GEM
ruby-enum (0.7.2)
i18n
ruby_dep (1.5.0)
rubyzip (1.2.1)
rubyzip (1.2.2)
safe_yaml (1.0.4)
sass (3.5.6)
sass (3.5.7)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
@@ -237,7 +236,7 @@ GEM
ethon (>= 0.9.0)
tzinfo (1.2.5)
thread_safe (~> 0.1)
unicode-display_width (1.3.3)
unicode-display_width (1.4.0)
PLATFORMS
ruby
+3 -2
View File
@@ -1,8 +1,9 @@
repository: pmd/pmd
pmd:
version: 6.5.0
date: 2018-06-26
version: 6.8.0
date: 30-September-2018
release_type: minor
output: web
# this property is useful for conditional filtering of content that is separate from the PDF.
+3
View File
@@ -325,6 +325,9 @@ entries:
- title: How PMD works
url: /pmd_devdocs_how_pmd_works.html
output: web, pdf
- title: Pmdtester
url: /pmd_devdocs_pmdtester.html
output: web, pdf
- title: null
output: web, pdf
subfolders:
-9
View File
@@ -6,15 +6,6 @@ $( document ).ready(function() {
$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });
/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
var target = $(this.getAttribute('href'))
, scroll_target = target.offset().top
$(window).scrollTop(scroll_target - 10);
return false
})
});
</script>
+13
View File
@@ -68,6 +68,19 @@ module CustomFilters
end
end
# Append the suffix only if the condition argument is truthy
def append_if(str, condition, suffix)
if condition
str + suffix
else
str
end
end
def append_unless(str, condition, suffix)
append_if(str, !condition, suffix)
end
def render_markdown(input)
if input
res = input
+73
View File
@@ -0,0 +1,73 @@
# Tag to reference a rule
#
# Usage:
# {% rule "java/codestyle/LinguisticNaming" %} works from anywhere
# If inside the doc page of a ruleset/category, the language and
# category segment can be dropped, they're taken to be the same.
#
# That means rule descriptions can also reference rules e.g. by simply
# saying {% rule AvoidFinalLocalVars %} if they're in the same category
# This could allow deprecated rule notices to link to the replacement rule
class RuleTag < Liquid::Tag
def initialize(tag_name, rule_ref, tokens)
super
if %r!(?:(?:(\w+)/)?(\w+)/)?(\w+)! =~ rule_ref
@lang_name = $1
@category_name = $2
@rule_name = $3
else
fail "Invalid rule reference format"
end
end
def render(context)
if /pmd_rules_(\w+)_(\w+)\.html/ =~ context["page.permalink"]
# If we're in a page describing a ruleset,
# omitted language or category are taken to be that of this page
@lang_name = @lang_name || $1
@category_name = @category_name || $2
end
unless @category_name
fail "no category for rule reference, and no implicit category name available"
end
unless @lang_name
fail "no language for rule reference, and no implicit language name available"
end
url_prefix = ""
# This is passed from the release notes processing script
# When generating links for the release notes, the links should be absolute
if context["is_release_notes_processor"]
url_prefix = "https://pmd.github.io/pmd-#{context["site.pmd.version"]}/"
end
markup_link(@rule_name, url_prefix + relativelink(@lang_name, @category_name, @rule_name))
end
private
def relativelink(lang, cat, rname)
"pmd_rules_#{lang}_#{cat}.html##{rname.downcase}"
end
def markup_link(rname, link)
"[`#{rname}`](#{link})"
end
end
Liquid::Template.register_tag('rule', RuleTag)
+60
View File
@@ -0,0 +1,60 @@
# Generates a table of contents based on markdown headers in the body
#
# The block has 2 optional args:
# * A variable name. If provided, the toc will only be generated if the var is true
# * An integer, describing the maximum depth at which headers are added to the toc
class TocMakerBlock < Liquid::Block
def initialize(tag_name, arg, tokens)
super
condition, depth = arg.split
@max_depth = depth.to_s.empty? ? 100 : depth.to_i
@condition_var = condition.strip unless condition.to_s.empty?
@body = tokens
end
def to_internal_link(header)
url = header.downcase.gsub(/\s+/, "-")
"[#{header}](##{url})"
end
def render(context)
contents = @body.render(context)
if @condition_var && !context[@condition_var]
# If the condition is false, the toc is not generated
return contents
end
headers = contents.lines.map {|l|
if /^(#+)\s+(\S.*)$/ =~ l
[$1.length, $2]
end
}.compact
min_indent = headers.map {|t| t[0]}.min
headers = headers.map {|t|
actual_depth = t[0] - min_indent
if actual_depth < @max_depth then
indent = " " * actual_depth
"#{indent}* #{to_internal_link(t[1])}"
end
}.compact
headers.unshift("### Table Of Contents\n")
headers.join("\n") + contents
end
end
Liquid::Template.register_tag('tocmaker', TocMakerBlock)
+2 -2
View File
@@ -79,8 +79,8 @@ h4[id],
h5[id],
h6[id],
dt[id]{
padding-top: 60px;
margin-top: -40px
padding-top: 20px;
margin-top: 0px
}
body h1 {margin-top:40px;}
+2 -3
View File
@@ -10,10 +10,9 @@ author: Tom Copeland, Xavier Le Vourch <xlv@users.sourceforge.net>
# Compiling PMD
* JDK 9 or higher
* [Apache Maven](http://maven.apache.org) 3 or later.
* JDK 10 or higher
{% include note.html content="While Java 9 is required for building, running PMD only requires Java 7 (or Java 8 for Apex)." %}
{% include note.html content="While Java 10 is required for building, running PMD only requires Java 7 (or Java 8 for Apex and the Designer)." %}
Youll need to either check out the source code or download the latest source release. Assuming youve got the latest source release, unzip it to a directory:
+24
View File
@@ -0,0 +1,24 @@
---
title: Pmdtester
tags: [devdocs]
permalink: pmd_devdocs_pmdtester.html
author: Binguo Bao <djydewang@gmail.com>
---
## Introduction
Pmdtester is a regression testing tool that ensures no new problems and unexpected behaviors will be introduced to PMD after fixing an issue.
It can also be used to verify, that new rules work as expected.It has been integrated into travis CI and is actually used automatically for PRs.
Regression difference reports are commented back to the PR for the reviewer's information e.g. https://github.com/pmd/pmd/pull/1265#issuecomment-408945709
## Run pmdtester locally
**Install pmdtester**
`gem install pmdtester --pre`
**Verifying your local changes and generate a diff-report locally**
`pmdtester -r YOUR_LOCAL_PMD_GIT_REPO_ROOT_DIR -b master -p YOUR_DEVELOPMENT_BRANCH`
The regression difference report is placed in the `YOUR_WORKING_DIR/target/reports/diff` directory.
For more documentation on pmdtester, see [README.rdoc](https://github.com/pmd/pmd-regression-tester/blob/master/README.rdoc)
@@ -25,12 +25,9 @@ Make sure code is up to date and everything is committed and pushed with git:
### The Release Notes and docs
At a very minimum, the current date must be noted in the release notes and the download section. Also, the version
must be adjusted. E.g. by removing "-SNAPSHOT".
You can find the release notes here: `docs/pages/release_notes.md`.
The date for the download section is to be entered in `docs/_config.yml`, e.g.
The date and the version must be updated in `docs/_config.yml`, e.g.
```
pmd:
@@ -140,6 +137,7 @@ the following template:
* Move version/release info from **docs/pages/release_notes.md** to **docs/pages/release_notes_old.md**.
* Update version/release info in **docs/pages/release_notes.md**. Use the following template:
{%raw%}
```
---
title: PMD Release Notes
@@ -147,18 +145,13 @@ permalink: pmd_release_notes.html
keywords: changelog, release notes
---
## ????? - ${DEVELOPMENT_VERSION}
## {{ site.pmd.date }} - {{ site.pmd.version }}
The PMD team is pleased to announce PMD ${DEVELOPMENT_VERSION%-SNAPSHOT}.
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
This is a bug fixing release.
This is a {{ site.pmd.release_type }} release.
### Table Of Contents
* [New and noteworthy](#new-and-noteworthy)
* [Fixed Issues](#fixed-issues)
* [API Changes](#api-changes)
* [External Contributions](#external-contributions)
{% tocmaker %}
### New and noteworthy
@@ -168,7 +161,11 @@ This is a bug fixing release.
### External Contributions
{% endtocmaker %}
```
{%endraw%}
Commit and push
+2 -1
View File
@@ -24,6 +24,7 @@ folder: pmd/rules
* [IfElseStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifelsestmtsmustusebraces): Avoid using if..else statements without using surrounding braces. If the code formattingor indent...
* [IfStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifstmtsmustusebraces): Avoid using if statements without using braces to surround the code block. If the codeformatting ...
* [MethodNamingConventions](pmd_rules_apex_codestyle.html#methodnamingconventions): Method names should always begin with a lower case character, and should not contain underscores.
* [OneDeclarationPerLine](pmd_rules_apex_codestyle.html#onedeclarationperline): Apex allows the use of several variables declaration of the same type on one line. However, itcan...
* [VariableNamingConventions](pmd_rules_apex_codestyle.html#variablenamingconventions): A variable naming conventions rule - customize this to your liking. Currently, itchecks for fina...
* [WhileLoopsMustUseBraces](pmd_rules_apex_codestyle.html#whileloopsmustusebraces): Avoid using 'while' statements without using braces to surround the code block. If the codeformat...
@@ -112,7 +113,7 @@ folder: pmd/rules
It contains the following rules:
[ApexBadCrypto](pmd_rules_apex_security.html#apexbadcrypto), [ApexCRUDViolation](pmd_rules_apex_security.html#apexcrudviolation), [ApexCSRF](pmd_rules_apex_security.html#apexcsrf), [ApexDangerousMethods](pmd_rules_apex_security.html#apexdangerousmethods), [ApexInsecureEndpoint](pmd_rules_apex_security.html#apexinsecureendpoint), [ApexOpenRedirect](pmd_rules_apex_security.html#apexopenredirect), [ApexSharingViolations](pmd_rules_apex_security.html#apexsharingviolations), [ApexSOQLInjection](pmd_rules_apex_security.html#apexsoqlinjection), [ApexSuggestUsingNamedCred](pmd_rules_apex_security.html#apexsuggestusingnamedcred), [ApexUnitTestClassShouldHaveAsserts](pmd_rules_apex_bestpractices.html#apexunittestclassshouldhaveasserts), [ApexUnitTestShouldNotUseSeeAllDataTrue](pmd_rules_apex_bestpractices.html#apexunittestshouldnotuseseealldatatrue), [ApexXSSFromEscapeFalse](pmd_rules_apex_security.html#apexxssfromescapefalse), [ApexXSSFromURLParam](pmd_rules_apex_security.html#apexxssfromurlparam), [AvoidDeeplyNestedIfStmts](pmd_rules_apex_design.html#avoiddeeplynestedifstmts), [AvoidDirectAccessTriggerMap](pmd_rules_apex_errorprone.html#avoiddirectaccesstriggermap), [AvoidDmlStatementsInLoops](pmd_rules_apex_performance.html#avoiddmlstatementsinloops), [AvoidGlobalModifier](pmd_rules_apex_bestpractices.html#avoidglobalmodifier), [AvoidHardcodingId](pmd_rules_apex_errorprone.html#avoidhardcodingid), [AvoidLogicInTrigger](pmd_rules_apex_bestpractices.html#avoidlogicintrigger), [AvoidNonExistentAnnotations](pmd_rules_apex_errorprone.html#avoidnonexistentannotations), [AvoidSoqlInLoops](pmd_rules_apex_performance.html#avoidsoqlinloops), [AvoidSoslInLoops](pmd_rules_apex_performance.html#avoidsoslinloops), [ClassNamingConventions](pmd_rules_apex_codestyle.html#classnamingconventions), [CyclomaticComplexity](pmd_rules_apex_design.html#cyclomaticcomplexity), [EmptyCatchBlock](pmd_rules_apex_errorprone.html#emptycatchblock), [EmptyIfStmt](pmd_rules_apex_errorprone.html#emptyifstmt), [EmptyStatementBlock](pmd_rules_apex_errorprone.html#emptystatementblock), [EmptyTryOrFinallyBlock](pmd_rules_apex_errorprone.html#emptytryorfinallyblock), [EmptyWhileStmt](pmd_rules_apex_errorprone.html#emptywhilestmt), [ExcessiveClassLength](pmd_rules_apex_design.html#excessiveclasslength), [ExcessiveParameterList](pmd_rules_apex_design.html#excessiveparameterlist), [ExcessivePublicCount](pmd_rules_apex_design.html#excessivepubliccount), [ForLoopsMustUseBraces](pmd_rules_apex_codestyle.html#forloopsmustusebraces), [IfElseStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifelsestmtsmustusebraces), [IfStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifstmtsmustusebraces), [MethodNamingConventions](pmd_rules_apex_codestyle.html#methodnamingconventions), [MethodWithSameNameAsEnclosingClass](pmd_rules_apex_errorprone.html#methodwithsamenameasenclosingclass), [NcssConstructorCount](pmd_rules_apex_design.html#ncssconstructorcount), [NcssMethodCount](pmd_rules_apex_design.html#ncssmethodcount), [NcssTypeCount](pmd_rules_apex_design.html#ncsstypecount), [StdCyclomaticComplexity](pmd_rules_apex_design.html#stdcyclomaticcomplexity), [TooManyFields](pmd_rules_apex_design.html#toomanyfields), [VariableNamingConventions](pmd_rules_apex_codestyle.html#variablenamingconventions), [WhileLoopsMustUseBraces](pmd_rules_apex_codestyle.html#whileloopsmustusebraces)
[ApexBadCrypto](pmd_rules_apex_security.html#apexbadcrypto), [ApexCRUDViolation](pmd_rules_apex_security.html#apexcrudviolation), [ApexCSRF](pmd_rules_apex_security.html#apexcsrf), [ApexDangerousMethods](pmd_rules_apex_security.html#apexdangerousmethods), [ApexDoc](pmd_rules_apex_documentation.html#apexdoc), [ApexInsecureEndpoint](pmd_rules_apex_security.html#apexinsecureendpoint), [ApexOpenRedirect](pmd_rules_apex_security.html#apexopenredirect), [ApexSharingViolations](pmd_rules_apex_security.html#apexsharingviolations), [ApexSOQLInjection](pmd_rules_apex_security.html#apexsoqlinjection), [ApexSuggestUsingNamedCred](pmd_rules_apex_security.html#apexsuggestusingnamedcred), [ApexUnitTestClassShouldHaveAsserts](pmd_rules_apex_bestpractices.html#apexunittestclassshouldhaveasserts), [ApexUnitTestShouldNotUseSeeAllDataTrue](pmd_rules_apex_bestpractices.html#apexunittestshouldnotuseseealldatatrue), [ApexXSSFromEscapeFalse](pmd_rules_apex_security.html#apexxssfromescapefalse), [ApexXSSFromURLParam](pmd_rules_apex_security.html#apexxssfromurlparam), [AvoidDeeplyNestedIfStmts](pmd_rules_apex_design.html#avoiddeeplynestedifstmts), [AvoidDirectAccessTriggerMap](pmd_rules_apex_errorprone.html#avoiddirectaccesstriggermap), [AvoidDmlStatementsInLoops](pmd_rules_apex_performance.html#avoiddmlstatementsinloops), [AvoidGlobalModifier](pmd_rules_apex_bestpractices.html#avoidglobalmodifier), [AvoidHardcodingId](pmd_rules_apex_errorprone.html#avoidhardcodingid), [AvoidLogicInTrigger](pmd_rules_apex_bestpractices.html#avoidlogicintrigger), [AvoidNonExistentAnnotations](pmd_rules_apex_errorprone.html#avoidnonexistentannotations), [AvoidSoqlInLoops](pmd_rules_apex_performance.html#avoidsoqlinloops), [AvoidSoslInLoops](pmd_rules_apex_performance.html#avoidsoslinloops), [ClassNamingConventions](pmd_rules_apex_codestyle.html#classnamingconventions), [CyclomaticComplexity](pmd_rules_apex_design.html#cyclomaticcomplexity), [EmptyCatchBlock](pmd_rules_apex_errorprone.html#emptycatchblock), [EmptyIfStmt](pmd_rules_apex_errorprone.html#emptyifstmt), [EmptyStatementBlock](pmd_rules_apex_errorprone.html#emptystatementblock), [EmptyTryOrFinallyBlock](pmd_rules_apex_errorprone.html#emptytryorfinallyblock), [EmptyWhileStmt](pmd_rules_apex_errorprone.html#emptywhilestmt), [ExcessiveClassLength](pmd_rules_apex_design.html#excessiveclasslength), [ExcessiveParameterList](pmd_rules_apex_design.html#excessiveparameterlist), [ExcessivePublicCount](pmd_rules_apex_design.html#excessivepubliccount), [ForLoopsMustUseBraces](pmd_rules_apex_codestyle.html#forloopsmustusebraces), [IfElseStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifelsestmtsmustusebraces), [IfStmtsMustUseBraces](pmd_rules_apex_codestyle.html#ifstmtsmustusebraces), [MethodNamingConventions](pmd_rules_apex_codestyle.html#methodnamingconventions), [MethodWithSameNameAsEnclosingClass](pmd_rules_apex_errorprone.html#methodwithsamenameasenclosingclass), [NcssConstructorCount](pmd_rules_apex_design.html#ncssconstructorcount), [NcssMethodCount](pmd_rules_apex_design.html#ncssmethodcount), [NcssTypeCount](pmd_rules_apex_design.html#ncsstypecount), [OneDeclarationPerLine](pmd_rules_apex_codestyle.html#onedeclarationperline), [StdCyclomaticComplexity](pmd_rules_apex_design.html#stdcyclomaticcomplexity), [TooManyFields](pmd_rules_apex_design.html#toomanyfields), [VariableNamingConventions](pmd_rules_apex_codestyle.html#variablenamingconventions), [WhileLoopsMustUseBraces](pmd_rules_apex_codestyle.html#whileloopsmustusebraces)
* Empty Code (`rulesets/apex/empty.xml`):
+47 -1
View File
@@ -5,7 +5,7 @@ permalink: pmd_rules_apex_codestyle.html
folder: pmd/rules/apex
sidebaractiveurl: /pmd_rules_apex.html
editmepath: ../pmd-apex/src/main/resources/category/apex/codestyle.xml
keywords: Code Style, ClassNamingConventions, IfElseStmtsMustUseBraces, IfStmtsMustUseBraces, ForLoopsMustUseBraces, MethodNamingConventions, VariableNamingConventions, WhileLoopsMustUseBraces
keywords: Code Style, ClassNamingConventions, IfElseStmtsMustUseBraces, IfStmtsMustUseBraces, ForLoopsMustUseBraces, MethodNamingConventions, OneDeclarationPerLine, VariableNamingConventions, WhileLoopsMustUseBraces
language: Apex
---
## ClassNamingConventions
@@ -192,6 +192,52 @@ public class Foo {
<rule ref="category/apex/codestyle.xml/MethodNamingConventions" />
```
## OneDeclarationPerLine
**Since:** PMD 6.7.0
**Priority:** High (1)
Apex allows the use of several variables declaration of the same type on one line. However, it
can lead to quite messy code. This rule looks for several declarations on the same line.
**This rule is defined by the following XPath expression:**
``` xpath
//VariableDeclarationStatements
[count(VariableDeclaration) > 1]
[$strictMode or count(distinct-values(VariableDeclaration/@BeginLine)) != count(VariableDeclaration)]
|
//FieldDeclarationStatements
[count(FieldDeclaration) > 1]
[$strictMode or count(distinct-values(FieldDeclaration/VariableExpression/@BeginLine)) != count(FieldDeclaration/VariableExpression)]
```
**Example(s):**
``` java
Integer a, b; // not recommended
Integer a,
b; // ok by default, can be flagged setting the strictMode property
Integer a; // preferred approach
Integer b;
```
**This rule has the following properties:**
|Name|Default Value|Description|Multivalued|
|----|-------------|-----------|-----------|
|cc_categories|Style|Code Climate Categories|yes. Delimiter is '\|'.|
|cc_remediation_points_multiplier|1|Code Climate Remediation Points multiplier|no|
|cc_block_highlighting|false|Code Climate Block Highlighting|no|
|strictMode|false|If true, mark combined declaration even if the declarations are on separate lines.|no|
**Use this rule by referencing it:**
``` xml
<rule ref="category/apex/codestyle.xml/OneDeclarationPerLine" />
```
## VariableNamingConventions
**Since:** PMD 5.5.0
+18 -6
View File
@@ -28,7 +28,7 @@ folder: pmd/rules
* [JUnit4TestShouldUseBeforeAnnotation](pmd_rules_java_bestpractices.html#junit4testshouldusebeforeannotation): In JUnit 3, the setUp method was used to set up all data entities required in running tests. JUni...
* [JUnit4TestShouldUseTestAnnotation](pmd_rules_java_bestpractices.html#junit4testshouldusetestannotation): In JUnit 3, the framework executed all methods which started with the word test as a unit test. I...
* [JUnitAssertionsShouldIncludeMessage](pmd_rules_java_bestpractices.html#junitassertionsshouldincludemessage): JUnit assertions should include an informative message - i.e., use the three-argument version of ...
* [JUnitTestContainsTooManyAsserts](pmd_rules_java_bestpractices.html#junittestcontainstoomanyasserts): JUnit tests should not contain too many asserts. Many asserts are indicative of a complex test, ...
* [JUnitTestContainsTooManyAsserts](pmd_rules_java_bestpractices.html#junittestcontainstoomanyasserts): Unit tests should not contain too many asserts. Many asserts are indicative of a complex test, fo...
* [JUnitTestsShouldIncludeAssert](pmd_rules_java_bestpractices.html#junittestsshouldincludeassert): JUnit tests should include at least one assertion. This makes the tests more robust, and using a...
* [JUnitUseExpected](pmd_rules_java_bestpractices.html#junituseexpected): In JUnit4, use the @Test(expected) annotation to denote tests that should throw exceptions.
* [LooseCoupling](pmd_rules_java_bestpractices.html#loosecoupling): The use of implementation types (i.e., HashSet) as object references limits your ability to use a...
@@ -63,7 +63,7 @@ folder: pmd/rules
* [AtLeastOneConstructor](pmd_rules_java_codestyle.html#atleastoneconstructor): Each non-static class should declare at least one constructor.Classes with solely static members ...
* [AvoidDollarSigns](pmd_rules_java_codestyle.html#avoiddollarsigns): Avoid using dollar signs in variable/method/class/interface names.
* [AvoidFinalLocalVariable](pmd_rules_java_codestyle.html#avoidfinallocalvariable): Avoid using final local variables, turn them into fields.
* [AvoidPrefixingMethodParameters](pmd_rules_java_codestyle.html#avoidprefixingmethodparameters): Prefixing parameters by 'in' or 'out' pollutes the name of the parameters and reduces code readab...
* [AvoidPrefixingMethodParameters](pmd_rules_java_codestyle.html#avoidprefixingmethodparameters): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Prefixing parameters by 'in' or 'out' pollutes the name of the parameters and reduces code readab...
* [AvoidProtectedFieldInFinalClass](pmd_rules_java_codestyle.html#avoidprotectedfieldinfinalclass): Do not use protected fields in final classes since they cannot be subclassed.Clarify your intent ...
* [AvoidProtectedMethodInFinalClassNotExtending](pmd_rules_java_codestyle.html#avoidprotectedmethodinfinalclassnotextending): Do not use protected methods in most final classes since they cannot be subclassed. This shouldon...
* [AvoidUsingNativeCode](pmd_rules_java_codestyle.html#avoidusingnativecode): Unnecessary reliance on Java Native Interface (JNI) calls directly reduces application portabilit...
@@ -79,20 +79,24 @@ folder: pmd/rules
* [EmptyMethodInAbstractClassShouldBeAbstract](pmd_rules_java_codestyle.html#emptymethodinabstractclassshouldbeabstract): Empty or auto-generated methods in an abstract class should be tagged as abstract. This helps to ...
* [ExtendsObject](pmd_rules_java_codestyle.html#extendsobject): No need to explicitly extend Object.
* [FieldDeclarationsShouldBeAtStartOfClass](pmd_rules_java_codestyle.html#fielddeclarationsshouldbeatstartofclass): Fields should be declared at the top of the class, before any method declarations, constructors, ...
* [FieldNamingConventions](pmd_rules_java_codestyle.html#fieldnamingconventions): Configurable naming conventions for field declarations. This rule reports variable declarations ...
* [ForLoopShouldBeWhileLoop](pmd_rules_java_codestyle.html#forloopshouldbewhileloop): Some for loops can be simplified to while loops, this makes them more concise.
* [ForLoopsMustUseBraces](pmd_rules_java_codestyle.html#forloopsmustusebraces): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Avoid using 'for' statements without using curly braces. If the code formatting or indentation is...
* [FormalParameterNamingConventions](pmd_rules_java_codestyle.html#formalparameternamingconventions): Configurable naming conventions for formal parameters of methods and lambdas. This rul...
* [GenericsNaming](pmd_rules_java_codestyle.html#genericsnaming): Names for references to generic values should be limited to a single uppercase letter.
* [IdenticalCatchBranches](pmd_rules_java_codestyle.html#identicalcatchbranches): Identical 'catch' branches use up vertical space and increase the complexity of code without ...
* [IfElseStmtsMustUseBraces](pmd_rules_java_codestyle.html#ifelsestmtsmustusebraces): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Avoid using if..else statements without using surrounding braces. If the code formatting or inden...
* [IfStmtsMustUseBraces](pmd_rules_java_codestyle.html#ifstmtsmustusebraces): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Avoid using if statements without using braces to surround the code block. If the code formatting...
* [LinguisticNaming](pmd_rules_java_codestyle.html#linguisticnaming): This rule finds Linguistic Naming Antipatterns. It checks for fields, that are named, as if they ...
* [LocalHomeNamingConvention](pmd_rules_java_codestyle.html#localhomenamingconvention): The Local Home interface of a Session EJB should be suffixed by 'LocalHome'.
* [LocalInterfaceSessionNamingConvention](pmd_rules_java_codestyle.html#localinterfacesessionnamingconvention): The Local Interface of a Session EJB should be suffixed by 'Local'.
* [LocalVariableCouldBeFinal](pmd_rules_java_codestyle.html#localvariablecouldbefinal): A local variable assigned only once can be declared final.
* [LocalVariableNamingConventions](pmd_rules_java_codestyle.html#localvariablenamingconventions): Configurable naming conventions for local variable declarations and other locally-scoped ...
* [LongVariable](pmd_rules_java_codestyle.html#longvariable): Fields, formal arguments, or local variable names that are too long can make the code difficult t...
* [MDBAndSessionBeanNamingConvention](pmd_rules_java_codestyle.html#mdbandsessionbeannamingconvention): The EJB Specification states that any MessageDrivenBean or SessionBean should be suffixed by 'Bean'.
* [MethodArgumentCouldBeFinal](pmd_rules_java_codestyle.html#methodargumentcouldbefinal): A method argument that is never re-assigned within the method can be declared final.
* [MethodNamingConventions](pmd_rules_java_codestyle.html#methodnamingconventions): Configurable naming conventions for method declarations. This rule reports method decl...
* [MIsLeadingVariableName](pmd_rules_java_codestyle.html#misleadingvariablename): Detects when a non-field has a name starting with 'm_'. This usually denotes a field and could b...
* [MIsLeadingVariableName](pmd_rules_java_codestyle.html#misleadingvariablename): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Detects when a non-field has a name starting with 'm_'. This usually denotes a field and could b...
* [NoPackage](pmd_rules_java_codestyle.html#nopackage): Detects when a class or interface does not have a package definition.
* [OnlyOneReturn](pmd_rules_java_codestyle.html#onlyonereturn): A method should have only one exit point, and that should be the last statement in the method.
* [PackageCase](pmd_rules_java_codestyle.html#packagecase): Detects when a package definition contains uppercase characters.
@@ -102,7 +106,7 @@ folder: pmd/rules
* [ShortClassName](pmd_rules_java_codestyle.html#shortclassname): Short Classnames with fewer than e.g. five characters are not recommended.
* [ShortMethodName](pmd_rules_java_codestyle.html#shortmethodname): Method names that are very short are not helpful to the reader.
* [ShortVariable](pmd_rules_java_codestyle.html#shortvariable): Fields, local variables, or parameter names that are very short are not helpful to the reader.
* [SuspiciousConstantFieldName](pmd_rules_java_codestyle.html#suspiciousconstantfieldname): Field names using all uppercase characters - Sun's Java naming conventions indicating constants -...
* [SuspiciousConstantFieldName](pmd_rules_java_codestyle.html#suspiciousconstantfieldname): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Field names using all uppercase characters - Sun's Java naming conventions indicating constants -...
* [TooManyStaticImports](pmd_rules_java_codestyle.html#toomanystaticimports): If you overuse the static import feature, it can make your program unreadable and unmaintainable,...
* [UnnecessaryAnnotationValueElement](pmd_rules_java_codestyle.html#unnecessaryannotationvalueelement): Avoid the use of value in annotations when it's the only element.
* [UnnecessaryConstructor](pmd_rules_java_codestyle.html#unnecessaryconstructor): This rule detects when a constructor is not necessary; i.e., when there is only one constructor a...
@@ -112,7 +116,7 @@ folder: pmd/rules
* [UnnecessaryReturn](pmd_rules_java_codestyle.html#unnecessaryreturn): Avoid the use of unnecessary return statements.
* [UselessParentheses](pmd_rules_java_codestyle.html#uselessparentheses): Useless parentheses should be removed.
* [UselessQualifiedThis](pmd_rules_java_codestyle.html#uselessqualifiedthis): Look for qualified this usages in the same class.
* [VariableNamingConventions](pmd_rules_java_codestyle.html#variablenamingconventions): A variable naming conventions rule - customize this to your liking. Currently, itchecks for fina...
* [VariableNamingConventions](pmd_rules_java_codestyle.html#variablenamingconventions): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> A variable naming conventions rule - customize this to your liking. Currently, itchecks for fina...
* [WhileLoopsMustUseBraces](pmd_rules_java_codestyle.html#whileloopsmustusebraces): <span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> Avoid using 'while' statements without using braces to surround the code block. If the code forma...
## Design
@@ -246,7 +250,7 @@ folder: pmd/rules
* [MethodWithSameNameAsEnclosingClass](pmd_rules_java_errorprone.html#methodwithsamenameasenclosingclass): Non-constructor methods should not have the same name as the enclosing class.
* [MisplacedNullCheck](pmd_rules_java_errorprone.html#misplacednullcheck): The null check here is misplaced. If the variable is null a NullPointerException will be thrown.E...
* [MissingBreakInSwitch](pmd_rules_java_errorprone.html#missingbreakinswitch): Switch statements without break or return statements for each case optionmay indicate problematic...
* [MissingSerialVersionUID](pmd_rules_java_errorprone.html#missingserialversionuid): Serializable classes should provide a serialVersionUID field.
* [MissingSerialVersionUID](pmd_rules_java_errorprone.html#missingserialversionuid): Serializable classes should provide a serialVersionUID field.The serialVersionUID field is also n...
* [MissingStaticMethodInNonInstantiatableClass](pmd_rules_java_errorprone.html#missingstaticmethodinnoninstantiatableclass): A class that has private constructors and does not have any static methods or fields cannot be used.
* [MoreThanOneLogger](pmd_rules_java_errorprone.html#morethanonelogger): Normally only one logger is used in each class.
* [NonCaseLabelInSwitchStatement](pmd_rules_java_errorprone.html#noncaselabelinswitchstatement): A non-case label (e.g. a named break/continue label) was present in a switch statement.This legal...
@@ -520,6 +524,14 @@ folder: pmd/rules
[AddEmptyString](pmd_rules_java_performance.html#addemptystring), [AvoidArrayLoops](pmd_rules_java_performance.html#avoidarrayloops), [AvoidInstantiatingObjectsInLoops](pmd_rules_java_performance.html#avoidinstantiatingobjectsinloops), [LocalVariableCouldBeFinal](pmd_rules_java_codestyle.html#localvariablecouldbefinal), [MethodArgumentCouldBeFinal](pmd_rules_java_codestyle.html#methodargumentcouldbefinal), [PrematureDeclaration](pmd_rules_java_codestyle.html#prematuredeclaration), [RedundantFieldInitializer](pmd_rules_java_performance.html#redundantfieldinitializer), [SimplifyStartsWith](pmd_rules_java_performance.html#simplifystartswith), [UnnecessaryWrapperObjectCreation](pmd_rules_java_performance.html#unnecessarywrapperobjectcreation), [UseArrayListInsteadOfVector](pmd_rules_java_performance.html#usearraylistinsteadofvector), [UseArraysAsList](pmd_rules_java_performance.html#usearraysaslist), [UseStringBufferForStringAppends](pmd_rules_java_performance.html#usestringbufferforstringappends)
* quickstart (`rulesets/java/quickstart.xml`):
Quickstart configuration of PMD. Includes the rules that are most likely to apply everywhere.
It contains the following rules:
[AbstractClassWithoutAnyMethod](pmd_rules_java_design.html#abstractclasswithoutanymethod), [AssignmentInOperand](pmd_rules_java_errorprone.html#assignmentinoperand), [AssignmentToNonFinalStatic](pmd_rules_java_errorprone.html#assignmenttononfinalstatic), [AvoidAccessibilityAlteration](pmd_rules_java_errorprone.html#avoidaccessibilityalteration), [AvoidBranchingStatementAsLastInLoop](pmd_rules_java_errorprone.html#avoidbranchingstatementaslastinloop), [AvoidCatchingThrowable](pmd_rules_java_errorprone.html#avoidcatchingthrowable), [AvoidDecimalLiteralsInBigDecimalConstructor](pmd_rules_java_errorprone.html#avoiddecimalliteralsinbigdecimalconstructor), [AvoidDollarSigns](pmd_rules_java_codestyle.html#avoiddollarsigns), [AvoidInstanceofChecksInCatchClause](pmd_rules_java_errorprone.html#avoidinstanceofchecksincatchclause), [AvoidMultipleUnaryOperators](pmd_rules_java_errorprone.html#avoidmultipleunaryoperators), [AvoidProtectedFieldInFinalClass](pmd_rules_java_codestyle.html#avoidprotectedfieldinfinalclass), [AvoidProtectedMethodInFinalClassNotExtending](pmd_rules_java_codestyle.html#avoidprotectedmethodinfinalclassnotextending), [AvoidStringBufferField](pmd_rules_java_bestpractices.html#avoidstringbufferfield), [AvoidThreadGroup](pmd_rules_java_multithreading.html#avoidthreadgroup), [AvoidUsingHardCodedIP](pmd_rules_java_bestpractices.html#avoidusinghardcodedip), [AvoidUsingOctalValues](pmd_rules_java_errorprone.html#avoidusingoctalvalues), [AvoidUsingVolatile](pmd_rules_java_multithreading.html#avoidusingvolatile), [BadComparison](pmd_rules_java_errorprone.html#badcomparison), [BigIntegerInstantiation](pmd_rules_java_performance.html#bigintegerinstantiation), [BooleanInstantiation](pmd_rules_java_performance.html#booleaninstantiation), [BrokenNullCheck](pmd_rules_java_errorprone.html#brokennullcheck), [CheckResultSet](pmd_rules_java_bestpractices.html#checkresultset), [CheckSkipResult](pmd_rules_java_errorprone.html#checkskipresult), [ClassCastExceptionWithToArray](pmd_rules_java_errorprone.html#classcastexceptionwithtoarray), [ClassNamingConventions](pmd_rules_java_codestyle.html#classnamingconventions), [ClassWithOnlyPrivateConstructorsShouldBeFinal](pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal), [CloneMethodMustBePublic](pmd_rules_java_errorprone.html#clonemethodmustbepublic), [CloneMethodMustImplementCloneable](pmd_rules_java_errorprone.html#clonemethodmustimplementcloneable), [CloneMethodReturnTypeMustMatchClassName](pmd_rules_java_errorprone.html#clonemethodreturntypemustmatchclassname), [CloneThrowsCloneNotSupportedException](pmd_rules_java_errorprone.html#clonethrowsclonenotsupportedexception), [CloseResource](pmd_rules_java_errorprone.html#closeresource), [CompareObjectsWithEquals](pmd_rules_java_errorprone.html#compareobjectswithequals), [ConstantsInInterface](pmd_rules_java_bestpractices.html#constantsininterface), [ControlStatementBraces](pmd_rules_java_codestyle.html#controlstatementbraces), [DefaultLabelNotLastInSwitchStmt](pmd_rules_java_bestpractices.html#defaultlabelnotlastinswitchstmt), [DoNotCallGarbageCollectionExplicitly](pmd_rules_java_errorprone.html#donotcallgarbagecollectionexplicitly), [DoNotExtendJavaLangError](pmd_rules_java_design.html#donotextendjavalangerror), [DoNotExtendJavaLangThrowable](pmd_rules_java_errorprone.html#donotextendjavalangthrowable), [DontCallThreadRun](pmd_rules_java_multithreading.html#dontcallthreadrun), [DontImportJavaLang](pmd_rules_java_codestyle.html#dontimportjavalang), [DontUseFloatTypeForLoopIndices](pmd_rules_java_errorprone.html#dontusefloattypeforloopindices), [DoubleCheckedLocking](pmd_rules_java_multithreading.html#doublecheckedlocking), [DuplicateImports](pmd_rules_java_codestyle.html#duplicateimports), [EmptyCatchBlock](pmd_rules_java_errorprone.html#emptycatchblock), [EmptyFinalizer](pmd_rules_java_errorprone.html#emptyfinalizer), [EmptyFinallyBlock](pmd_rules_java_errorprone.html#emptyfinallyblock), [EmptyIfStmt](pmd_rules_java_errorprone.html#emptyifstmt), [EmptyInitializer](pmd_rules_java_errorprone.html#emptyinitializer), [EmptyStatementBlock](pmd_rules_java_errorprone.html#emptystatementblock), [EmptyStatementNotInLoop](pmd_rules_java_errorprone.html#emptystatementnotinloop), [EmptySwitchStatements](pmd_rules_java_errorprone.html#emptyswitchstatements), [EmptySynchronizedBlock](pmd_rules_java_errorprone.html#emptysynchronizedblock), [EmptyTryBlock](pmd_rules_java_errorprone.html#emptytryblock), [EmptyWhileStmt](pmd_rules_java_errorprone.html#emptywhilestmt), [EqualsNull](pmd_rules_java_errorprone.html#equalsnull), [ExtendsObject](pmd_rules_java_codestyle.html#extendsobject), [FinalFieldCouldBeStatic](pmd_rules_java_design.html#finalfieldcouldbestatic), [ForLoopCanBeForeach](pmd_rules_java_bestpractices.html#forloopcanbeforeach), [ForLoopShouldBeWhileLoop](pmd_rules_java_codestyle.html#forloopshouldbewhileloop), [FormalParameterNamingConventions](pmd_rules_java_codestyle.html#formalparameternamingconventioLine truncated
* Security Code Guidelines (`rulesets/java/sunsecure.xml`):
<span style="border-radius: 0.25em; color: #fff; padding: 0.2em 0.6em 0.3em; display: inline; background-color: #d9534f; font-size: 75%;">Deprecated</span> This ruleset is for backwards compatibility.
Loaded 30 of 357 files, more files were not shown because too many files have changed in this diff. Show more