Compare commits

...

251 Commits

Author SHA1 Message Date
590f1871fe simulate_local_edits.py 2024-11-22 15:29:08 +05:00
a73f81aec4 a lot of random changes 2024-11-22 14:59:02 +05:00
0fdeb67010 a lot of random changes 2024-11-22 14:57:15 +05:00
f02c057b4f Simulate big commit with random edits 2024-11-22 14:52:44 +05:00
Andreas Dangel
4f766035a4 [java] Fix #5263 - UnnecessaryFullyQualifiedName FP with forward references (#5353)
Merge pull request #5353 from oowekyala:issue5263-ufqn-forward-ref
2024-11-22 09:48:25 +01:00
Andreas Dangel
9da17877ac [doc] Update release notes (#5263, #5353) 2024-11-22 09:47:53 +01:00
Andreas Dangel
3e9e128aa7 [java] UnnecessaryFullyQualifiedName - improve test case 2024-11-22 09:46:35 +01:00
Clément Fournier
918684c154 Fix static methods being whitelisted 2024-11-21 16:51:24 +01:00
Clément Fournier
e63edf358e [java] Fix #5263 - UnnecessaryFullyQualifiedName FP with forward reference. 2024-11-21 15:26:54 +01:00
Clément Fournier
0d11f151bd [java] Add more details to parse failures in signatures 2024-11-21 14:55:51 +01:00
Juan Martín Sotuyo Dodero
28b4139cd4 Bump rouge from 4.5.0 to 4.5.1 in the all-gems group across 1 directory (#5348) 2024-11-18 15:44:10 -03:00
Juan Martín Sotuyo Dodero
d61f691559 Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 (#5350) 2024-11-18 15:43:55 -03:00
Clément Fournier
12f7f98803 Fix junit 5 warning
return type of factory method must be a collection
or array or stream
2024-11-18 11:43:51 +01:00
dependabot[bot]
2e4f16d516 Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0
Bumps org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 04:05:13 +00:00
dependabot[bot]
46ef55c9a9 Bump rouge from 4.5.0 to 4.5.1 in the all-gems group across 1 directory
Bumps the all-gems group with 1 update in the / directory: [rouge](https://github.com/rouge-ruby/rouge).


Updates `rouge` from 4.5.0 to 4.5.1
- [Release notes](https://github.com/rouge-ruby/rouge/releases)
- [Changelog](https://github.com/rouge-ruby/rouge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rouge-ruby/rouge/compare/v4.5.0...v4.5.1)

---
updated-dependencies:
- dependency-name: rouge
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-gems
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 03:46:56 +00:00
Andreas Dangel
79c0ce0415 [julia] Ignore generated code in Julia module (#5342)
Merge pull request #5342 from Monits:fix-generated-code-julia
2024-11-17 16:16:51 +01:00
Andreas Dangel
8fdfd369b0 [doc] Update release notes (#5342) 2024-11-17 16:15:55 +01:00
Andreas Dangel
80b8bc47df [gherkin] Remove generated gherkin code from coverage report (#5336)
Merge pull request #5336 from Monits:fix-generated-code-gherkin
2024-11-17 16:13:13 +01:00
Andreas Dangel
a9b6c946b4 [doc] Update release notes (#5336) 2024-11-17 16:12:46 +01:00
Andreas Dangel
2910ab0403 [kotlin] Prevent auxiliary grammars from generating lexers (#5335)
Merge pull request #5335 from Monits:fix-generated-code-kotlin
2024-11-17 15:58:54 +01:00
Andreas Dangel
5a0220da2e [doc] Update release notes (#5335) 2024-11-17 15:58:05 +01:00
Andreas Dangel
bc4a49deac [doc] Update docs/pages/pmd/projectdocs/credits.md [skip ci] 2024-11-17 15:49:32 +01:00
Andreas Dangel
a40c30c8c1 [apex] New Rule: Queueable Should Attach Finalizer (#5303)
Merge pull request #5303 from mitchspano:Require_Finalizer
2024-11-17 15:46:05 +01:00
Andreas Dangel
44c15aae6d [doc] Update release notes (#5303, #5302) 2024-11-17 15:30:59 +01:00
Andreas Dangel
85aeebbab0 Merge branch 'main' into pr-5303 2024-11-17 15:25:24 +01:00
Andreas Dangel
a5925eb5ea [doc] Fix typo in release notes 2024-11-17 15:24:49 +01:00
mitchspano
c456396931 Reset credits.md to pmd main HEAD. 2024-11-15 22:14:20 +00:00
mitchspano
1ee0f53608 Update @mitchspano as a contributor 2024-11-15 22:07:44 +00:00
Juan Martín Sotuyo Dodero
e60f460e02 Merge branch 'pr-5340' 2024-11-15 18:40:37 -03:00
Juan Martín Sotuyo Dodero
ee1ab976bc update changelog, refs #5097 2024-11-15 18:39:39 -03:00
Juan Martín Sotuyo Dodero
15cab177d2 Remove added test 2024-11-15 18:30:03 -03:00
Juan Martín Sotuyo Dodero
b6f45ed618 Ensure types don't match 2024-11-15 17:55:07 -03:00
Juan Martín Sotuyo Dodero
1ceae38880 [java] TooFewBranchesForSwitch - allow list of case constants (#5289) 2024-11-15 13:48:50 -06:00
Juan Martín Sotuyo Dodero
f7de8d3e7e Merge branch 'pr-5331' 2024-11-15 16:47:09 -03:00
Juan Martín Sotuyo Dodero
59864a7c6c Merge branch 'pr-5341' 2024-11-15 16:15:19 -03:00
Juan Martín Sotuyo Dodero
a6746fcffa Update changelog, refs #5083 2024-11-15 16:14:53 -03:00
Juan Martín Sotuyo Dodero
aad8e93a2f Add test case ensuring we don't incur in FNs 2024-11-15 16:13:44 -03:00
Juan Martín Sotuyo Dodero
3bb943e0e5 Add deprecated code for backwards compatibility 2024-11-15 16:01:45 -03:00
Juan Martín Sotuyo Dodero
3356dd949d Ignore generated code in Julia module 2024-11-15 15:42:35 -03:00
Clément Fournier
b264fa14e1 Fix #5083 - mref without target type but with exact method
has compile time decl
2024-11-15 16:36:52 +01:00
Clément Fournier
c1aa4e0381 Merge branch 'main' into typeres-problem-with-unchecked-conversion 2024-11-15 16:18:22 +01:00
Clément Fournier
a72ac5845b Add test for #5113 2024-11-15 16:16:08 +01:00
Juan Martín Sotuyo Dodero
4e1f4be009 Merge branch 'main' into issue-5287 2024-11-15 08:51:52 -06:00
Juan Martín Sotuyo Dodero
c73e5cb8b1 [html] Test for a closing tag when determining node positions (#5328) 2024-11-15 08:50:53 -06:00
Clément Fournier
5931b6601c [java] Fix #5097 - problem with unchecked conversion 2024-11-15 15:27:55 +01:00
Juan Martín Sotuyo Dodero
9d15c900db Pass linters in generated code 2024-11-15 11:27:07 -03:00
mitchspano
69a24126f7 Fix formatting and static code analysis findings. 2024-11-14 23:29:44 +00:00
Juan Martín Sotuyo Dodero
ef3a4cc15e Remove generated gherkin code from coverage report
- Take the chance to remove / deprecate autogenerated classes that are
   not needed and were not used.
2024-11-14 18:10:59 -03:00
Juan Martín Sotuyo Dodero
4ef8fb21a9 Merge branch 'main' into issue-5322 2024-11-14 14:38:45 -06:00
Juan Martín Sotuyo Dodero
f803aa36dc [java] InsufficientStringBufferDeclaration: Fix CCE for Character (#5332) 2024-11-14 13:57:49 -06:00
Juan Martín Sotuyo Dodero
0cf8f2c18b Suppress style warnings on generated file 2024-11-14 16:55:55 -03:00
Juan Martín Sotuyo Dodero
178f9541e2 Add since to deprecation notice 2024-11-14 16:51:04 -03:00
Juan Martín Sotuyo Dodero
79026f98c9 Add licence header 2024-11-14 16:49:45 -03:00
Juan Martín Sotuyo Dodero
0e0f347f51 Rename parser before annotating to ensure files are found 2024-11-14 16:47:20 -03:00
Juan Martín Sotuyo Dodero
0d606a7122 Prevent auxiliary grammars from generating lexers
- A misconfiguration of Antlr4 produced an auxiliary gramma
   (UnicodeClasses), that was imported into the main kotlin grammar,
   to produce it's own Lexer, which was never used.
 - We no longer produce that Lexer, properly moving imports to the
   standard directory for that.
 - We manually copy a generated version for API compatibility, flagging
   it as both Generated and Deprecated for removal in PMD 8
2024-11-14 16:39:09 -03:00
Andreas Dangel
d60b234a47 Merge branch 'main' into issue-5314 2024-11-14 19:47:41 +01:00
Andreas Dangel
b050ce353e [java] Propagate unknown type better when mref is unresolved (#5330)
Merge pull request #5330 from oowekyala:typeres-fix-inference-issue-mref
2024-11-14 19:18:43 +01:00
Andreas Dangel
32f55e22e3 [doc] Update release notes (#5329, #5330) 2024-11-14 19:18:11 +01:00
Andreas Dangel
206ed8bbd3 [apex] Use case-insensitive input stream to avoid choking on Unicode escape sequences (#5284)
Merge pull request #5284 from wahajenius:main
2024-11-14 18:23:26 +01:00
Andreas Dangel
e1d4f27e19 Add @wahajenius as a contributor 2024-11-14 18:18:06 +01:00
Andreas Dangel
093683bc59 [doc] Update release notes (#5284, #5333) 2024-11-14 18:17:49 +01:00
Andreas Dangel
509452577d [apex] Add test case for #5333 2024-11-14 18:16:06 +01:00
Andreas Dangel
991bc2c41d [apex] Report LexException when extracting comments 2024-11-14 18:12:13 +01:00
Andreas Dangel
8c58a0b3f5 Merge branch 'main' into pr-5284 2024-11-14 18:01:56 +01:00
Andreas Dangel
01b8ca765b Add @chenguangqi as a contributor 2024-11-14 17:48:26 +01:00
Andreas Dangel
3fdbf7d6cb [java] InsufficientStringBufferDeclaration: Fix CCE for Character
Fixes #5314
2024-11-14 17:48:08 +01:00
Andreas Dangel
bb729e02f4 Add @VitaliiIevtushenko as a contributor 2024-11-14 17:39:32 +01:00
Clément Fournier
bf388d7fd0 Propagate unknown type better when mref is unresolved 2024-11-14 17:39:31 +01:00
Andreas Dangel
61eb116833 [java] PreserveStackTrace - consider instance type patterns
Fixes #5318
2024-11-14 17:39:07 +01:00
Andreas Dangel
634a525286 [html] Test for a closing tag when determining node positions
Fixes #5322
2024-11-14 17:07:37 +01:00
Clément Fournier
2df68ed168 Disable type inf logging by default 2024-11-14 16:32:09 +01:00
Clément Fournier
04dfb782f0 Merge branch 'typeres-fix-inference-issue' 2024-11-14 16:14:50 +01:00
Clément Fournier
a79d3e6557 Add unit tests 2024-11-14 16:13:30 +01:00
Andreas Dangel
bb2782241e [java] Fix inference dependency issue with nested lambdas (#5325)
Merge pull request #5325 from oowekyala:typeres-fix-inference-issue
2024-11-14 15:51:08 +01:00
Andreas Dangel
2340168421 [doc] Update release notes (#5324) 2024-11-14 15:50:35 +01:00
Andreas Dangel
e5a1236981 Update pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/bestpractices/xml/UnusedPrivateMethod.xml 2024-11-14 15:48:47 +01:00
dependabot[bot]
ed5e862aa3 Bump rouge from 4.4.0 to 4.5.0 in the all-gems group across 1 directory (#5316)
Bumps the all-gems group with 1 update in the / directory: [rouge](https://github.com/rouge-ruby/rouge).


Updates `rouge` from 4.4.0 to 4.5.0
- [Release notes](https://github.com/rouge-ruby/rouge/releases)
- [Changelog](https://github.com/rouge-ruby/rouge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rouge-ruby/rouge/compare/v4.4.0...v4.5.0)

---
updated-dependencies:
- dependency-name: rouge
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-gems
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-14 15:14:44 +01:00
Clément Fournier
529693c916 [java] fix inference dependency issue
Reported in #5324

I improved the verbose logging output a bit so
some of the changes are not directly relevant.
2024-11-13 22:39:34 +01:00
mitchspano
1a9e721fb6 Implements the RuleChain within the QueueableWithoutFinalizerRule.
Implements the [`RuleChain`](https://docs.pmd-code.org/latest/pmd_userdocs_extending_writing_java_rules.html#economic-traversal-the-rulechain) to traverse all classes within the file.
2024-11-12 21:59:02 +00:00
mitchspano
4e4ca6bb70 Incorporate code review feedback.
- Renames the rule to `QueueableWithoutFinalizer` to be more neutral.
- Provides a more robust description.
- Provides a more succinct error message.
- Provides a positive sample for the documentation .
2024-11-12 19:46:58 +00:00
Juan Martín Sotuyo Dodero
3659a2cb7d Bump org.apache.commons:commons-compress from 1.26.0 to 1.27.1 (#5317) 2024-11-10 22:55:15 -06:00
dependabot[bot]
07de5559bc Bump org.apache.commons:commons-compress from 1.26.0 to 1.27.1
Bumps org.apache.commons:commons-compress from 1.26.0 to 1.27.1.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 03:35:46 +00:00
Andreas Dangel
b05b8240a7 Merge branch 'main' into issue-5287 2024-11-07 19:51:00 +01:00
Andreas Dangel
ee7d6fed3e [java] TooFewBranchesForSwitch - add test case from comment on #5311 2024-11-07 19:50:29 +01:00
Juan Martín Sotuyo Dodero
fe88498ee8 [java] Fix #5293: Parse number of type parameters eagerly (#5309) 2024-11-07 06:19:16 -06:00
Juan Martín Sotuyo Dodero
944e1e8f7a Bump maven-pmd-plugin from 3.24.0 to 3.26.0 (#5312) 2024-11-07 06:17:30 -06:00
Andreas Dangel
ca208d2241 Bump maven-pmd-plugin from 3.24.0 to 3.26.0 2024-11-07 12:40:18 +01:00
Andreas Dangel
9dcb697f13 Improve DeadlockTest 2024-11-07 12:38:11 +01:00
Andreas Dangel
733ac4bba0 [doc] Update release notes (#5293) 2024-11-04 11:23:49 +01:00
Andreas Dangel
1ee6494429 [java] Fix #5293: Parse number of type parameters eagerly
When creating a LazyClassSignature or LazyMethodType, make sure
to parse the number of type parameters eagerly, so that AstDisambiguationPass
can get this number without triggering additional parsing.
2024-11-04 11:23:49 +01:00
Andreas Dangel
a1996554d8 [java] Add DeadlockTest for verifying #5293
- Improve logging for Parselock

Refs #5293
2024-11-04 11:23:48 +01:00
dependabot[bot]
e15c05721e Bump webrick from 1.8.2 to 1.9.0 in /docs in the all-gems group across 1 directory (#5308)
Bump webrick in /docs in the all-gems group across 1 directory

Bumps the all-gems group with 1 update in the /docs directory: [webrick](https://github.com/ruby/webrick).


Updates `webrick` from 1.8.2 to 1.9.0
- [Release notes](https://github.com/ruby/webrick/releases)
- [Commits](https://github.com/ruby/webrick/compare/v1.8.2...v1.9.0)

---
updated-dependencies:
- dependency-name: webrick
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-gems
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 09:23:58 +01:00
Juan Martín Sotuyo Dodero
f0daed5874 Bump org.apache.maven.plugins:maven-clean-plugin from 3.3.2 to 3.4.0 (#5307) 2024-11-03 21:54:00 -06:00
dependabot[bot]
36dfcf8211 Bump org.apache.maven.plugins:maven-clean-plugin from 3.3.2 to 3.4.0
Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.3.2...maven-clean-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 03:08:41 +00:00
mitchspano
83d8ca0169 Fix bestPractices.xml formatting and priority definition. 2024-11-01 21:59:13 +00:00
mitchspano
be3c34fe1a Add priority definition. 2024-11-01 21:29:30 +00:00
mitchspano
52fb6c814b Queueable Should Attach Finalizer 2024-11-01 21:17:53 +00:00
mitchspano
93929deef6 Update @mitchspano as a contributor 2024-11-01 17:09:51 +00:00
Andreas Dangel
3ed370f61d Bump gems and bundler (#5301)
- Bump bundler from 2.5.3 to 2.5.22
- Bump activesupport from 7.2.1 to 7.2.2
- Bump execjs from 2.9.1 to 2.10.0
- Bump faraday from 2.11.0 to 2.12.0
- Bump i18n from 1.14.5 to 1.14.6
- Bump json from 2.7.2 to 2.7.5
- Bump logger from 1.6.0 to 1.6.1
- Bump rexml from 3.3.6/3.3.8 to 3.3.9
- Bump rufus-scheduler from 3.9.2 to 3.9.2

- Fixes https://github.com/pmd/pmd/security/dependabot/69
- Fixes https://github.com/pmd/pmd/security/dependabot/70
2024-10-31 15:07:25 +01:00
Andreas Dangel
5eaefd2841 [doc] Update release notes (#1860) 2024-10-31 15:06:32 +01:00
Andreas Dangel
a709be1dcb [xml] Have pmd-xml Lexer in line with other antlr grammars (#5296)
Merge pull request #5296 from Monits:align-xml-antlr
2024-10-31 12:27:11 +01:00
Andreas Dangel
c079d8c544 [doc] Update release notes (#5296) 2024-10-31 12:25:59 +01:00
Andreas Dangel
7bfa581511 Merge branch 'main' into pr-5296 2024-10-31 12:17:57 +01:00
Andreas Dangel
6ae7404941 [xml] XMLLexer - Update deprecation notice 2024-10-31 12:17:27 +01:00
Juan Martín Sotuyo Dodero
94095df872 Fix style issues 2024-10-29 17:21:24 -03:00
Juan Martín Sotuyo Dodero
7119424d96 Add license header 2024-10-29 16:56:30 -03:00
Juan Martín Sotuyo Dodero
69a92de52d Have pmd-xml Lexer in line with other antlr grammars
- The package is no longer antlr4, but ast, as is in all other modules
 - We keep a deprecated proxy for backwards compatibility
 - We annotate the generated classes as such to ignore them from
   coverage reports
2024-10-28 22:10:21 -03:00
Juan Martín Sotuyo Dodero
73dbc7a67f Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.1 (#5290) 2024-10-28 14:06:52 -03:00
dependabot[bot]
c81cd1d520 Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.1
Bumps [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.6.0 to 3.7.1.
- [Release notes](https://github.com/apache/maven-assembly-plugin/releases)
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.6.0...maven-assembly-plugin-3.7.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-assembly-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 03:31:36 +00:00
Juan Martín Sotuyo Dodero
4473aa6667 [ant] Formatter: avoid reflective access to determine console encoding (#5286) 2024-10-27 15:40:04 -03:00
Juan Martín Sotuyo Dodero
97d68e331c Bump asm from 9.7 to 9.7.1 (#5288) 2024-10-27 12:38:42 -03:00
Andreas Dangel
16eafc89c2 [java] TooFewBranchesForSwitch - allow list of case constants
Fixes #5287
2024-10-27 16:24:05 +01:00
Andreas Dangel
d68d6c57ef Bump asm from 9.7 to 9.7.1
This enables support for Java 24
Refs #5154
2024-10-27 15:53:00 +01:00
Andreas Dangel
9c098b2531 Bump pmd from 7.5.0 to 7.7.0 (#5285)
* Bump pmd from 7.5.0 to 7.7.0

* Bump build-tools from 27 to 28-SNAPSHOT

Needed to remove deprecation warnings
about old rule names
2024-10-27 15:20:28 +01:00
Andreas Dangel
3f697aff35 [ant] Formatter: avoid reflective access to determine console encoding
- for java 17+, there is public API to get the console encoding
  -> no problem
- for older java versions, try to use system property
  sun.jnu.encoding if it exists
- only then use the fall-backs with illegal reflective access
  to private fields/methods on java.io.Console
- Also avoid using reflection utils from apache commons, instead
  use reflection directly. The illegal access warnings are then
  properly reported against our class
  net.sourceforge.pmd.ant.Formatter.

Fixes #1860
2024-10-25 18:33:36 +02:00
Andreas Dangel
74ec6f45ee [doc] Fix release notes for 7.7.0
Old rule name was actually DefaultLabelNotLastInSwitchStmt
2024-10-25 10:35:02 +02:00
Andreas Dangel
c179834288 [release] Prepare next development version [skip ci] 2024-10-25 09:28:54 +02:00
Andreas Dangel
7739f2b840 [release] prepare release pmd_releases/7.7.0 2024-10-25 09:07:54 +02:00
Andreas Dangel
919e73f6b0 Prepare pmd release 7.7.0 2024-10-25 08:47:38 +02:00
Andreas Dangel
e2d59c0e64 Fix #5244: [java] UselessOperationOnImmutable: consider java.time.* types (#5279)
Merge pull request #5279 from adangel:issue-5244
2024-10-24 14:24:16 +02:00
Andreas Dangel
8f2d47dfb7 Fix #5270: [apex] AvoidNonRestrictiveQueries: Fix regex for detecting LIMIT clause (#5273)
Merge pull request #5273 from adangel:issue-5270
2024-10-24 14:22:25 +02:00
Andreas Dangel
e6097d6090 [java] Rename rule SwitchStmtsShouldHaveDefault to NonExhaustiveSwitch (#5267)
Merge pull request #5267 from adangel:issue-4286
2024-10-24 14:21:04 +02:00
Andreas Dangel
5e83246469 [doc] Update release notes (#5267) 2024-10-24 14:16:43 +02:00
Andreas Dangel
62c2858f70 Fix #5257: [java] NonCaseLabelInSwitch - support switch expressions (#5256)
Merge pull request #5256 from adangel:rename-nocaselabelswitch
2024-10-24 14:15:06 +02:00
Andreas Dangel
0d8878d58e [java] Rename rule DefaultLabelNotLastInSwitch (#5255)
Merge pull request #5255 from adangel:rename-defaultlabelswitch
2024-10-24 14:10:16 +02:00
Andreas Dangel
4b23718aac Fix #4813: [java] SwitchStmtsShouldHaveDefault false positive with pattern matching (#5252)
Merge pull request #5252 from adangel:issue-4813
2024-10-24 14:08:12 +02:00
Andreas Dangel
3a501a0f6b Fix #5249 and #5250: [java] TooFewBranchesForSwitch ignore pattern matching and support switch expressions (#5251)
Merge pull request #5251 from adangel:issue-5249-5250
2024-10-24 14:06:03 +02:00
Andreas Dangel
36654ed52e [java] UselessOperationOnImmutable: false positive on void results 2024-10-24 13:08:09 +02:00
Andreas Dangel
45b1217485 [java] TooFewBranchesForSwitch: don't report empty switch
Empty switch statements are already reported
by EmptyControlStatement
2024-10-24 12:51:42 +02:00
Andreas Dangel
662759755d [java] SwitchStmtsShouldHaveDefault.xml: don't report empty switch
Empty switch statements are already reported
by EmptyControlStatement
2024-10-24 12:47:53 +02:00
Andreas Dangel
d9d6b57f2a [java] TooFewBranchesForSwitch: report empty switch
This fixes a false negative
2024-10-24 12:38:45 +02:00
Andreas Dangel
6c35c73919 [java] SwitchStmtsShouldHaveDefault: use new PatternLabel attribute 2024-10-24 11:29:40 +02:00
Andreas Dangel
e37f82b62d Merge branch 'main' into issue-4813 2024-10-24 11:24:17 +02:00
Andreas Dangel
6f5af6e585 [java] TooFewBranchesForSwitch: use new PatternLabel attribute 2024-10-24 11:22:47 +02:00
Andreas Dangel
66d879f707 Merge branch 'main' into issue-5249-5250 2024-10-24 11:20:39 +02:00
Andreas Dangel
93f6279ea7 Fix #3362: [java] ImplicitSwitchFallThrough should consider switch expressions (#5248) 2024-10-24 10:46:59 +02:00
Andreas Dangel
156f293ef3 Fix #5030: [java] SwitchDensity false positive with pattern matching (#5247) 2024-10-24 10:45:56 +02:00
Andreas Dangel
40ed4590be [java] Improve UnitTestShouldUse{After,Before}Annotation rules to support JUnit5 and TestNG (#5245) 2024-10-24 10:43:48 +02:00
Andreas Dangel
7358289bbe [cpp] Ignore literals and ignore identifiers capability to C++ CPD (#5040)
Merge pull request #5040 from jdupak:master
2024-10-24 10:18:39 +02:00
Andreas Dangel
a180258033 [doc] Update release notes (#5040) 2024-10-24 10:17:51 +02:00
Andreas Dangel
63675eaa18 [doc] Update release notes (#5279) 2024-10-22 21:03:22 +02:00
Andreas Dangel
49f2c15b83 [doc] Update release notes (#5273) 2024-10-22 21:01:42 +02:00
Andreas Dangel
15520211b5 Merge branch 'main' into issue-5270 2024-10-22 21:01:00 +02:00
Andreas Dangel
c4b8f18a36 [doc] Update release notes (#5252) 2024-10-22 20:58:37 +02:00
Andreas Dangel
c95817a75d Merge branch 'main' into issue-4813 2024-10-22 20:55:38 +02:00
Andreas Dangel
09b0864eff Apply suggestions from code review
Co-authored-by: Clément Fournier <clement.fournier@tu-dresden.de>
2024-10-22 20:50:10 +02:00
dependabot[bot]
1517a18956 Bump org.scala-lang:scala-reflect from 2.13.13 to 2.13.15 (#5281)
Bumps [org.scala-lang:scala-reflect](https://github.com/scala/scala) from 2.13.13 to 2.13.15.
- [Release notes](https://github.com/scala/scala/releases)
- [Commits](https://github.com/scala/scala/compare/v2.13.13...v2.13.15)

---
updated-dependencies:
- dependency-name: org.scala-lang:scala-reflect
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-22 20:23:50 +02:00
Willem Hajenius
61b1c372cd [apex] Must use case-insensitive input stream to avoid choking on Unicode escape sequences 2024-10-22 12:27:28 +02:00
Juan Martín Sotuyo Dodero
97fe389dcc Bump danger from 9.5.0 to 9.5.1 in the all-gems group across 1 directory (#5280) 2024-10-21 11:28:12 -03:00
dependabot[bot]
7df70ea7c1 Bump danger from 9.5.0 to 9.5.1 in the all-gems group across 1 directory
Bumps the all-gems group with 1 update in the / directory: [danger](https://github.com/danger/danger).


Updates `danger` from 9.5.0 to 9.5.1
- [Release notes](https://github.com/danger/danger/releases)
- [Changelog](https://github.com/danger/danger/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger/compare/v9.5.0...v9.5.1)

---
updated-dependencies:
- dependency-name: danger
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-gems
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 03:18:38 +00:00
Jakub Dupak
7ad4e0f0fc Add @jdupak as a contributor 2024-10-20 21:57:48 +02:00
Jakub Dupak
c47f5a6062 [cpd] Add ignore literals and identifiers capability to C++ 2024-10-20 21:57:48 +02:00
Andreas Dangel
6d55f6f053 [java] UselessOperationOnImmutable: consider java.time.* types
Fixes #5244
2024-10-18 17:42:44 +02:00
dependabot[bot]
b60b4d8a68 Bump com.google.protobuf:protobuf-java from 3.25.3 to 4.28.2 (#5234)
* Bump com.google.protobuf:protobuf-java from 3.25.3 to 4.28.2

Bumps [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) from 3.25.3 to 4.28.2.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Cleanup comment about protobuf dependency

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andreas Dangel <andreas.dangel@pmd-code.org>
2024-10-18 16:42:52 +02:00
Andreas Dangel
5df7dccfb6 [doc] Update release notes (#5255) 2024-10-18 16:40:27 +02:00
Andreas Dangel
f4941433ce Merge branch 'main' into rename-defaultlabelswitch 2024-10-18 16:39:12 +02:00
Andreas Dangel
665504decc [doc] Update release notes (#5251) 2024-10-18 16:30:41 +02:00
Andreas Dangel
ef0db9a166 Merge branch 'main' into issue-5249-5250 2024-10-18 16:30:01 +02:00
Andreas Dangel
fd8fcd67d6 [doc] Update release notes (#5248) 2024-10-18 16:23:17 +02:00
Andreas Dangel
dafdc964a5 Merge branch 'main' into issue-3362 2024-10-18 16:22:17 +02:00
Andreas Dangel
81429a4628 [doc] Update release notes (#5247) 2024-10-18 16:21:02 +02:00
Andreas Dangel
fb94e2493c Merge branch 'main' into issue-5030 2024-10-18 16:20:11 +02:00
Andreas Dangel
a0d4b38b53 [doc] Update release notes (#5245) 2024-10-18 16:16:54 +02:00
Andreas Dangel
f317e8bee5 Merge branch 'main' into java-unit-test-rules 2024-10-18 16:15:51 +02:00
dependabot[bot]
99f4c9c044 Bump org.checkerframework:checker-qual from 2.11.1 to 3.48.1 (#5276)
Bumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 2.11.1 to 3.48.1.
- [Release notes](https://github.com/typetools/checker-framework/releases)
- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-2.11.1...checker-framework-3.48.1)

---
updated-dependencies:
- dependency-name: org.checkerframework:checker-qual
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-18 16:04:35 +02:00
Andreas Dangel
656b9052ad [java] CouplingBetweenObjects: improve violation message (#5278)
Merge pull request #5278 from adangel:coupling-between-objects-message
2024-10-18 15:40:54 +02:00
Andreas Dangel
f0375d61dd [doc] Update release notes (#5278) 2024-10-18 15:39:52 +02:00
Andreas Dangel
a24c8aa002 [doc] Update release notes 2024-10-18 15:36:28 +02:00
Andreas Dangel
5ffb953191 [java] CouplingBetweenObjects: improve violation message
When we add the actual count to the message,
we can more easily verify that the rule works
as expected.
2024-10-18 10:42:42 +02:00
Juan Martín Sotuyo Dodero
d5faa1c74a Merge pull request #5275 from adangel/javacc-wrapper-improvement
Use plugin-classpath to simplify javacc-wrapper.xml
2024-10-13 23:54:54 -03:00
Andreas Dangel
867b142ee4 Use plugin-classpath to simplify javacc-wrapper.xml
javacc is on the antrun plugin's classpath.
The javacc jar file doesn't need to be copied
explicitly.
2024-10-13 12:28:16 +02:00
Andreas Dangel
0ea42b94e0 Ignore generated antlr classes in coverage reports (#5258)
Merge pull request #5258 from Monits:ignore-generated-antlr
2024-10-13 12:27:30 +02:00
Andreas Dangel
f834b8744d [doc] Update release notes (#5258) 2024-10-13 12:26:31 +02:00
Juan Martín Sotuyo Dodero
ab1976382a Remove ant.contrib.jar property 2024-10-12 17:28:18 -03:00
Andreas Dangel
08bcf29190 [java] Fix #5253: Support Boolean wrapper class for BooleanGetMethodName rule (#5269)
Merge pull request #5269 from Aryant-Tripathi:5253/feature/support-boolean-wrapper-in-get-method-rule
2024-10-12 18:04:14 +02:00
Andreas Dangel
85e0695ca6 Add @Aryant-Tripathi as a contributor 2024-10-12 18:02:07 +02:00
Andreas Dangel
47a59b1810 Add @phansys as a contributor 2024-10-12 18:01:45 +02:00
Andreas Dangel
e50234563e [doc] Update release notes (#5253, #5269) 2024-10-12 18:01:21 +02:00
Aryant Tripathi
9a123bff94 Support wrapper class in BooleanGetMethodName rule (#5253)\n \n - Updated XPath rule to include both primitive and wrapper class:\n (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])\n - Added test cases to ensure that methods returning are also flagged correctly.\n - Ensured the rule enforces consistent method naming for both primitive and wrapper types. 2024-10-11 22:37:01 +05:30
Aryant Tripathi
9077c6a71f Support wrapper class in BooleanGetMethodName rule (#5253)\n \n - Updated XPath rule to include both primitive and wrapper class:\n (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])\n - Added test cases to ensure that methods returning are also flagged correctly.\n - Ensured the rule enforces consistent method naming for both primitive and wrapper types. 2024-10-11 22:34:07 +05:30
Aryant Tripathi
36f713b4c7 Merge branch 'pmd:main' into 5253/feature/support-boolean-wrapper-in-get-method-rule 2024-10-11 22:30:29 +05:30
Aryant Tripathi
ed6312e3ba Support wrapper class in BooleanGetMethodName rule (#5253)\n \n - Updated XPath rule to include both primitive and wrapper class:\n (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])\n - Added test cases to ensure that methods returning are also flagged correctly.\n - Ensured the rule enforces consistent method naming for both primitive and wrapper types. 2024-10-11 22:29:42 +05:30
Andreas Dangel
8ac55e7ad7 Bump org.junit from 5.8.2 to 5.11.2 (#5274)
Also update junit-platform from 1.10.2 to 1.11.2

- Supersedes and closes #5260
- Supersedes and closes #5259
2024-10-11 16:42:42 +02:00
Andreas Dangel
6bd7a9db8e [java] Fix NPE with empty pattern list (#5264)
Merge pull request #5264 from oowekyala:issue5261-npe-record-empty-components
2024-10-11 12:36:26 +02:00
Andreas Dangel
7655cfc63b Add @gudzpoz as a contributor 2024-10-11 12:35:45 +02:00
Andreas Dangel
fbde9b967f [doc] Update release notes (#5261, #5264) 2024-10-11 12:35:19 +02:00
Andreas Dangel
7ae3155325 Add @thesunlover as a contributor 2024-10-11 11:57:39 +02:00
Andreas Dangel
c595fea83f [apex] AvoidNonRestrictiveQueries: Fix regex for detecting LIMIT clause
Fixes #5270
2024-10-11 11:57:10 +02:00
Aryant Tripathi
8b2af2db8a Support wrapper class in BooleanGetMethodName rule (#5253)
- Updated XPath rule to include both  primitive and  wrapper class:
                  (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])
                - Added test cases to ensure that methods returning  are also flagged correctly.
                - Ensured the rule enforces consistent method naming for both primitive and wrapper types.
2024-10-10 20:44:06 +05:30
Aryant Tripathi
54dfabea9b Support Boolean wrapper class for BooleanGetMethodName rule (#5253) 2024-10-09 10:00:02 +05:30
Andreas Dangel
07840cace2 [java] Rename rule SwitchStmtsShouldHaveDefault to NonExhaustiveSwitch
Fixes #4286
2024-10-08 17:33:32 +02:00
Andreas Dangel
ff1b9b2cdd [java] SwitchStmtsShouldHaveDefault - test for multiple case constants 2024-10-08 17:15:18 +02:00
Clément Fournier
b724b4dd33 Fix DataflowPassTest 2024-10-07 18:18:32 +02:00
Clément Fournier
2c1a7f026e Fix NPE with empty pattern list 2024-10-07 16:51:50 +02:00
Juan Martín Sotuyo Dodero
f68130eaf9 Annotate Antlr generated classes for PMD languages 2024-10-06 20:07:47 -03:00
Juan Martín Sotuyo Dodero
31018611c6 Add missing lexer properties 2024-10-06 20:07:37 -03:00
Juan Martín Sotuyo Dodero
e3cd599da2 Add @Generated annotations to cpd Antlr languages 2024-10-06 19:58:43 -03:00
Juan Martín Sotuyo Dodero
ca71d76553 Include up-to-date-check to Antlr4 cpd
- Prevent unnecessary re-runs
2024-10-06 19:48:30 -03:00
Juan Martín Sotuyo Dodero
93a019765d Fix incorrect properties 2024-10-06 17:24:42 -03:00
Juan Martín Sotuyo Dodero
00bf6fe2f7 Fix @since for @Generated 2024-10-06 17:21:30 -03:00
Andreas Dangel
377670f267 [doc] Update release notes (#5257) 2024-10-06 18:48:47 +02:00
Andreas Dangel
5ecc29245b Fix externalInfoUrl after rename 2024-10-05 11:37:45 +02:00
Andreas Dangel
079eb238b9 [java] NonCaseLabelInSwitch - support switch expressions
Rename rule from NonCaseLabelInSwitchStatement

- as it applies to both switch statements and switch expressions
- extend the test cases to cover new java syntax
2024-10-05 11:19:53 +02:00
Andreas Dangel
b3157825d8 [java] Rename rule DefaultLabelNotLastInSwitch
- as it applies to both switch statements and switch expressions
- extend the test cases to cover new java syntax

Note: For patterns in switch, the java compiler already makes sure, that
default is the last case.
2024-10-05 11:00:13 +02:00
Andreas Dangel
6f081e111a Update pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/TooFewBranchesForSwitch.xml 2024-10-05 10:41:10 +02:00
Andreas Dangel
59403fc9e1 [java] SwitchStmtsShouldHaveDefault - also ignore record pattern 2024-10-05 10:39:55 +02:00
Andreas Dangel
13cc79af62 [java] TooFewBranchesForSwitch - also ignore record pattern 2024-10-05 10:36:39 +02:00
Andreas Dangel
1f31f771ad [java] SwitchDensity - more tests with (record) patterns 2024-10-05 10:31:40 +02:00
Andreas Dangel
d9db4dbcab [java] Rename TooFewBranchesForSwitch in quickstart.xml 2024-10-05 10:19:03 +02:00
Andreas Dangel
855e5175d4 [java] Renamed rule TooFewBranchesForSwitch
as it consider Switch Expressions now
additionally to Switch Statements.
2024-10-04 17:48:56 +02:00
Andreas Dangel
b87944a565 [java] TooFewBranchesForSwitch should consider Switch Expressions
Fixes #5250
2024-10-04 17:48:49 +02:00
Andreas Dangel
90f436fd28 [java] TooFewBranchesForSwitch should ignore Pattern Matching
Fixes #5249
2024-10-04 17:47:21 +02:00
Andreas Dangel
375fb72f3c [java] Fix tree dump test
New SwitchLabel#PatternLabel flag
2024-10-04 17:32:46 +02:00
Andreas Dangel
49deb8d4a0 [java] SwitchDensity false positive with pattern matching
Fixes #5030
2024-10-04 17:12:29 +02:00
Andreas Dangel
312d8e46ae [java] ImplicitSwitchFallThrough should consider switch expressions
Fixes #3362
2024-10-04 16:45:29 +02:00
Andreas Dangel
e5ff5532d4 Update @emouty as a contributor 2024-10-04 16:05:46 +02:00
Andreas Dangel
0c858b0a7b [java] SwitchStmtsShouldHaveDefault should ignore patterns
Fixes #4813
2024-10-04 16:05:45 +02:00
Andreas Dangel
a0818d5ab2 [doc] Document renamed/old rule names 2024-10-04 15:54:21 +02:00
Andreas Dangel
5ce4d292fa [java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() (#5225)
Merge pull request #5225 from lukasgraef:issue5067
2024-10-04 10:06:18 +02:00
Andreas Dangel
d2c42d2426 [doc] Update release notes (#5067, #5225) 2024-10-04 10:05:48 +02:00
Andreas Dangel
c6fd064054 Merge branch 'main' into pr-5225 2024-10-04 10:02:40 +02:00
Andreas Dangel
07cd250a74 Fix release_notes.md 2024-10-04 10:00:53 +02:00
Andreas Dangel
c0023dd942 [java] Rename UnitTestShouldIncludeAssert again
to make it consistent and always use singular "UnitTest"
Follow-up on #4532 and #4965
2024-10-04 09:32:55 +02:00
Andreas Dangel
9fbaa4fbfb [java] Update quickstart.xml with renamed UnitTest* rules 2024-10-04 09:25:21 +02:00
Juan Martín Sotuyo Dodero
7d4961f303 Update README.md
Point coveralls to main branch
2024-10-03 17:47:01 -03:00
Andreas Dangel
9337e5a7a2 [java] UnitTestShouldUseAfterAnnotation: Consider JUnit 5 and TestNG 2024-10-03 20:55:11 +02:00
Andreas Dangel
33c737718c [java] UnitTestShouldUseBeforeAnnotation: Consider JUnit 5 and TestNG 2024-10-03 20:55:10 +02:00
Andreas Dangel
b7c4a5e492 Ignore javacc code in coverage report (#5241)
Merge pull request #5241 from Monits:ignore-javacc-code
2024-10-03 20:30:41 +02:00
Andreas Dangel
d77a63da95 [doc] Update release notes (#5241) 2024-10-03 20:29:53 +02:00
Andreas Dangel
463ca964dc [java] Rename JUnit rules with overly restrictive names (#4965)
Merge pull request #4965 from Monits:issue-4532
2024-10-03 20:07:50 +02:00
Andreas Dangel
57497738c1 [doc] Update release notes (#4532, #4965) 2024-10-03 20:06:21 +02:00
Andreas Dangel
525435bd68 [java] Keep bestpractices.xml sorted alphabetically 2024-10-03 19:59:29 +02:00
Andreas Dangel
c5246eca46 Renamed JUnit4TestShouldUseAfterAnnotation
- call it UnitTest... to be agnostic to the testing framework
2024-10-03 19:52:56 +02:00
Andreas Dangel
4796da0fb2 Renamed JUnit4TestShouldUseBeforeAnnotation
- call it UnitTest... to be agnostic to the testing framework
2024-10-03 19:51:13 +02:00
lukasgraef
7dcab3f189 Fix static analysis findings 2024-09-30 20:48:20 +02:00
lukasgraef
39b8bdf171 Review Finding: Check for type java.nio.FileSystems 2024-09-30 20:13:01 +02:00
Andreas Dangel
5fe19b2096 [release] Prepare next development version [skip ci] 2024-09-27 11:43:22 +02:00
lukasgraef
ddb1eb8dd8 [java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() 2024-09-21 16:03:36 +02:00
Juan Martín Sotuyo Dodero
cae71e7a5e Be consistent in how we replace tokens 2024-09-17 17:09:29 -03:00
Juan Martín Sotuyo Dodero
029130a478 Use a custom annotation to ignore javacc generated code 2024-09-17 17:00:42 -03:00
Juan Martín Sotuyo Dodero
0253b9d3cd Ignore generated-sources in coverage reports
- We don't test it directly, nor is it our job
 - A bad grammar won't be processed, or fail in subtle ways only
   detectable in specific tests on the AST (which is included)
2024-09-14 01:33:20 -03:00
Juan Martín Sotuyo Dodero
f24635b55c Merge branch 'master' into issue-4532 2024-04-28 05:15:50 +02:00
Juan Martín Sotuyo Dodero
5b42381061 Reintroduce old class names
- Don't break API compatibility, and set everything for removal in PMD 8
2024-04-27 22:11:39 -03:00
Juan Martín Sotuyo Dodero
61a7459247 Update changelog 2024-04-17 17:00:05 -03:00
Juan Martín Sotuyo Dodero
bd89f9185b Typo 2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
7725897373 Rename JUnit4TestShouldUseTestAnnotation
- The rule is now called UnitTestShouldUseTestAnnotation as it applies
   to both JUnit and TestNG.
 - The doc is further improved to reflect this.
2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
9f1ab89d31 Rename JUnitTestsShouldIncludeAssertRule
- It's now called UnitTestsShouldIncludeAssertRule as it applies to
   JUnit and TestNG
 - The doc is updated to reflect this
2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
ffec30f392 Rename JUnitTestContainsTooManyAssertsRule
- The rule is now called UnitTestContainsTooManyAssertsRule as it
   checks for JUnit and TestNG.
 - This is further cleared up in the documentation.
2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
5301a8e852 Rename JUnitAssertionsShouldIncludeMessageRule
- The rule is now called UnitTestAssertionsShouldIncludeMessageRule as
   it applies to JUnit and TestNG.
 - The doc is updated to reflect this.
2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
691731cdd4 Rename JUnit4TestShouldUseAfterAnnotation
- Call it JUnitTestShouldUseAfterAnnotation instead as it not only
   applies to JUnit4
 - Improve the doc to further clarify it's usages
2024-04-17 16:42:37 -03:00
Juan Martín Sotuyo Dodero
55686dbef4 Rename JUnit4TestShouldUseBeforeAnnotation
- Call it JUnitTestShouldUseBeforeAnnotation as it applies to JUnit 4
   and 5.
 - Improve the doc to clarify it's intended use.
2024-04-17 16:42:37 -03:00
594 changed files with 52416 additions and 3937 deletions

View File

@ -7453,7 +7453,8 @@
"avatar_url": "https://avatars.githubusercontent.com/u/16755668?v=4",
"profile": "https://github.com/emouty",
"contributions": [
"code"
"code",
"bug"
]
},
{
@ -7516,6 +7517,7 @@
"avatar_url": "https://avatars.githubusercontent.com/u/18402464?v=4",
"profile": "https://github.com/mitchspano",
"contributions": [
"code",
"bug"
]
},
@ -7819,6 +7821,78 @@
"contributions": [
"bug"
]
},
{
"login": "thesunlover",
"name": "Iskren Stanislavov",
"avatar_url": "https://avatars.githubusercontent.com/u/6734600?v=4",
"profile": "https://interop.io/",
"contributions": [
"bug"
]
},
{
"login": "gudzpoz",
"name": "gudzpoz",
"avatar_url": "https://avatars.githubusercontent.com/u/14026120?v=4",
"profile": "https://kyo.iroiro.party/",
"contributions": [
"bug"
]
},
{
"login": "phansys",
"name": "Javier Spagnoletti",
"avatar_url": "https://avatars.githubusercontent.com/u/1231441?v=4",
"profile": "https://github.com/phansys",
"contributions": [
"bug"
]
},
{
"login": "Aryant-Tripathi",
"name": "Aryant Tripathi",
"avatar_url": "https://avatars.githubusercontent.com/u/60316716?v=4",
"profile": "https://github.com/Aryant-Tripathi",
"contributions": [
"code"
]
},
{
"login": "jdupak",
"name": "Jakub Dupak",
"avatar_url": "https://avatars.githubusercontent.com/u/22683640?v=4",
"profile": "https://github.com/jdupak",
"contributions": [
"code"
]
},
{
"login": "chenguangqi",
"name": "天热吃西瓜",
"avatar_url": "https://avatars.githubusercontent.com/u/6231010?v=4",
"profile": "http://chenguangqi.github.io/",
"contributions": [
"bug"
]
},
{
"login": "wahajenius",
"name": "Willem A. Hajenius",
"avatar_url": "https://avatars.githubusercontent.com/u/7836322?v=4",
"profile": "https://github.com/wahajenius",
"contributions": [
"code"
]
},
{
"login": "VitaliiIevtushenko",
"name": "Vitalii Yevtushenko",
"avatar_url": "https://avatars.githubusercontent.com/u/11145125?v=4",
"profile": "https://github.com/VitaliiIevtushenko",
"contributions": [
"bug"
]
}
],
"contributorsPerLine": 7,

View File

@ -1,48 +1,83 @@
# PMD CI Scripts
This folder contains scripts used for CI, that are PMD specific.
It uses the common scripts from [build-tools](https://github.com/pmd/build-tools).
Added line: 8803
Added line: 397
Added line: 2389
## .ci/files/public-env.gpg
Added line: 2050
This files contains the following environment variables:
Added line: 893
* DANGER_GITHUB_API_TOKEN: Token for danger to add comments to PRs as <https://github.com/pmd-test>.
Added line: 7092
Added line: 1776
Added line: 1458
Added line: 371
The token needs the scope "public_repo". Note: The default GITHUB_TOKEN can't be used, because
danger runs in pull request builds from fork and the default GITHUB_TOKEN has read-only access there
Added line: 2166
and can't write comments. Therefore the personal access token of the bot account "pmd-test" is used.
pmd-test has no commit permissions, but can comment on any public repo, including pmd/pmd.
Added line: 9706
* PMD_CI_CHUNK_TOKEN: Token for uploading reports to chunk.io
Added line: 2997
Added line: 7686
The file is encrypted, so that the tokens are not automatically disabled when github detects them
in clear text.
**Decrypting**:
Added line: 2218
Added line: 5258
gpg --batch --yes --decrypt --passphrase="GnxdjywUEPveyCD1RLiTd7t8CImnefYr" \
Added line: 6105
--output .ci/files/public-env .ci/files/public-env.gpg
Added line: 2860
**Encrypting**:
gpg --batch --symmetric --cipher-algo AES256 \
Added line: 7658
--armor --passphrase="GnxdjywUEPveyCD1RLiTd7t8CImnefYr" \
--output .ci/files/public-env.gpg .ci/files/public-env
## Local tests with docker
Added line: 2256
Added line: 7698
Using the same docker container as described in [build-env @ build-tools](https://github.com/pmd/build-tools).
Added line: 4848
Added line: 8614
### Testing a push build (snapshot)
Added line: 6717
Added line: 6493
Added line: 2139
Added line: 6240
Start docker without binding to local directory, so that we can do a fresh checkout
Added line: 9468
$ docker run \
Added line: 860
--interactive \
Added line: 7791
--tty \
Added line: 7787
--name pmd-build-env_pmd \
Added line: 1200
Added line: 966
Added line: 8897
Added line: 3773
pmd-build-env:latest
Added line: 7538
Added line: 1343
Added line: 2876
```
export LANG=en_US.UTF-8
export PMD_CI_SCRIPTS_URL=https://raw.githubusercontent.com/pmd/build-tools/main/scripts
@ -51,56 +86,89 @@ export PMD_CI_SECRET_PASSPHRASE="xyz"
export PMD_CI_DEBUG=true
MAIN_BRANCH="main"
Added line: 6291
eval $(~/create-gh-actions-env.sh push pmd/pmd $MAIN_BRANCH)
Added line: 7570
cd /workspaces/pmd
rmdir pmd && mkdir pmd
cd pmd
Added line: 4917
Added line: 3164
git init
git remote add origin https://github.com/pmd/pmd
Added line: 1903
git fetch --no-tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/${MAIN_BRANCH}:refs/remotes/origin/${MAIN_BRANCH}
git checkout --progress --force -B ${MAIN_BRANCH} refs/remotes/origin/${MAIN_BRANCH}
Added line: 5869
Added line: 5152
f=check-environment.sh; \
mkdir -p .ci && \
Added line: 2051
Added line: 1620
( [ -e .ci/$f ] || curl -sSL "${PMD_CI_SCRIPTS_URL}/$f" > ".ci/$f" ) && \
chmod 755 .ci/$f && \
.ci/$f
.ci/build.sh
Added line: 9212
Added line: 7311
Added line: 1160
```
Added line: 6015
### Testing a pull request
Added line: 9301
Same as the above, but this line changes:
```
eval $(~/create-gh-actions-env.sh pull_request pmd/pmd $MAIN_BRANCH)
Added line: 6346
```
Added line: 8915
Added line: 4922
Maybe update `/workspaces/event.json` to fill in a real pull request number, so that
Added line: 7442
danger can comment the correct PR.
Added line: 5479
And the checkout must be different. Example for PR 3220:
Added line: 7539
Added line: 7078
```
Added line: 4982
PMD_CI_PULL_REQUEST_NUMBER=3220
cd /workspace/pmd
rmdir pmd && mkdir pmd
cd pmd
Added line: 7346
git init
git remote add origin https://github.com/pmd/pmd
git fetch --no-tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/pull/${PMD_CI_PULL_REQUEST_NUMBER}/merge:refs/remotes/pull/${PMD_CI_PULL_REQUEST_NUMBER}/merge
git checkout --progress --force refs/remotes/pull/${PMD_CI_PULL_REQUEST_NUMBER}/merge
Added line: 6442
Added line: 5540
Added line: 9041
Added line: 4588
```
### Forked build
Added line: 5245
Added line: 5591
A build executing on a forked repository.
Added line: 5218
Added line: 2624
```
Added line: 7960
Added line: 6452
Added line: 997
$(~/create-gh-actions-env.sh push adangel/pmd $MAIN_BRANCH)
Added line: 695
```
@ -111,36 +179,60 @@ export LANG=en_US.UTF-8
export PMD_CI_SCRIPTS_URL=https://raw.githubusercontent.com/pmd/build-tools/main/scripts
export PMD_CI_SECRET_PASSPHRASE="xyz"
Added line: 9624
export PMD_CI_DEBUG=true
Added line: 9218
TAG_NAME=pmd_releases/6.33.0
Added line: 9734
eval $(~/create-gh-actions-env.sh push pmd/pmd refs/tags/$TAG_NAME)
Added line: 455
cd /workspaces/pmd
Added line: 3217
Added line: 157
Added line: 7411
rmdir pmd && mkdir pmd
cd pmd
Added line: 2538
Added line: 6507
git init
Added line: 6832
Added line: 7703
git remote add origin https://github.com/pmd/pmd
Added line: 3659
git fetch --no-tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/tags/$TAG_NAME:refs/tags/$TAG_NAME
git checkout --progress --force refs/tags/$TAG_NAME
Added line: 4641
Added line: 2311
f=check-environment.sh; \
mkdir -p .ci && \
( [ -e .ci/$f ] || curl -sSL "${PMD_CI_SCRIPTS_URL}/$f" > ".ci/$f" ) && \
Added line: 3275
Added line: 5836
chmod 755 .ci/$f && \
.ci/$f
Added line: 3796
Added line: 59
Added line: 7823
Added line: 1286
Added line: 720
Added line: 9688
Added line: 6803
#
# .ci/build.sh
Added line: 9008
Added line: 2611
#
```
Calling `.ci/build.sh` directly would re-release the tag $TAG_NAME - that's why it is commented out.
All the side-effects of a release would be carried out like creating and publishing a release on github,
Added line: 3239
Added line: 9164
Added line: 3855
uploading the release to sourceforge, uploading the docs to docs.pmd-code.org, uploading a
new baseline for the regression tester and so on. While the release should be reproducible and therefore should
produce exactly the same artifacts, re-uploading artifacts is not desired just for testing.
Added line: 8770
Note that maven-central would not be changed, since this is skipped via MAVEN_OPTS:
`MAVEN_OPTS` contains `-DskipRemoteStaging=true`, so that no maven artifacts are deployed
@ -154,4 +246,3 @@ Make sure to cleanup after the test, e.g. discard the draft github release.
## Workflow git-repo-sync
Synchronizes the github git repository pmd/pmd on every push to sourceforge.

View File

@ -1,30 +1,123 @@
Added line: 9032
Added line: 4984
Added line: 8296
Added line: 5358
Added line: 3781
Added line: 8576
Added line: 638
---
Added line: 4863
Added line: 4881
Added line: 1053
name: Rule violation (false-positive)
Added line: 2892
Added line: 419
Added line: 5445
Added line: 9875
Added line: 2837
Added line: 2727
about: Let us know about a false-positive (a violation is reported on code that is not problematic)
title: ''
Added line: 2040
labels: 'a:false-positive'
assignees: ''
Added line: 4646
Added line: 5328
Added line: 5556
Added line: 1343
Added line: 8597
Added line: 4832
Added line: 6373
Added line: 59
Added line: 9107
Added line: 679
Added line: 7562
Added line: 4826
Added line: 3685
Added line: 3413
---
Added line: 8862
Added line: 3581
Added line: 3115
Added line: 8214
Added line: 8330
Added line: 5011
Added line: 4960
Added line: 5711
Added line: 715
Added line: 5443
<!-- Please, prefix the report title with the language it applies to within brackets, such as [java] or [apex] -->
Added line: 2178
Added line: 3165
Added line: 2575
Added line: 8688
**Affects PMD Version:**
Added line: 3366
Added line: 3430
Added line: 8099
Added line: 1991
**Rule:**
Added line: 812
Added line: 6221
Added line: 8729
Added line: 3231
Added line: 8470
Added line: 782
Added line: 8999
Please provide the rule name and a link to the rule documentation:
Added line: 5171
Added line: 4827
Added line: 9685
Added line: 7949
Added line: 5263
Added line: 4070
Added line: 9530
Added line: 5361
Added line: 8332
Added line: 8267
Added line: 1113
Added line: 5193
Added line: 8746
<https://docs.pmd-code.org/latest/pmd_rules_XXX_XXX.html#XXX>
Added line: 3665
Added line: 5900
**Description:**
Added line: 3935
**Code Sample demonstrating the issue:**
```java
Added line: 1406
Added line: 1622
Added line: 3566
Added line: 9658
Added line: 1428
Added line: 5834
```
Added line: 7530
Added line: 2119
Added line: 9424
Added line: 6322
Added line: 971
Added line: 2904
Added line: 5053
**Expected outcome:**
Added line: 4245
Added line: 7901
Added line: 1581
Added line: 1774
Added line: 4867
PMD reports a violation at line ..., but that's wrong. That's a false positive.
Added line: 1008
Added line: 8833
Added line: 4235
**Running PMD through:** *[CLI | Ant | Maven | Gradle | Designer | Other]*
Added line: 2257
Added line: 250
Added line: 9807
Added line: 2685

View File

@ -1,30 +1,119 @@
---
Added line: 2036
Added line: 4210
Added line: 227
name: Rule violation (false-negative)
Added line: 5393
about: Let us know about a false-negative (no violation is reported on problematic code)
Added line: 3768
Added line: 2929
Added line: 336
Added line: 5100
Added line: 2776
title: ''
labels: 'a:false-negative'
Added line: 4378
Added line: 407
assignees: ''
---
Added line: 9712
Added line: 9804
Added line: 1425
Added line: 5548
Added line: 5560
Added line: 3441
<!-- Please, prefix the report title with the language it applies to within brackets, such as [java] or [apex] -->
Added line: 2963
Added line: 7108
Added line: 2911
**Affects PMD Version:**
Added line: 1130
Added line: 9851
Added line: 5619
Added line: 9719
Added line: 9518
Added line: 3632
**Rule:**
Added line: 9277
Added line: 7944
Added line: 8135
Added line: 3267
Added line: 7738
Added line: 672
Please provide the rule name and a link to the rule documentation:
Added line: 1330
Added line: 6999
Added line: 876
Added line: 9910
Added line: 8195
Added line: 1054
Added line: 8073
Added line: 8012
Added line: 4868
Added line: 8284
<https://docs.pmd-code.org/latest/pmd_rules_XXX_XXX.html#XXX>
Added line: 743
Added line: 7518
Added line: 7900
Added line: 2604
Added line: 1081
Added line: 907
Added line: 6001
Added line: 3968
Added line: 494
Added line: 5240
Added line: 2555
Added line: 3475
**Description:**
Added line: 8125
Added line: 8447
**Code Sample demonstrating the issue:**
Added line: 1790
Added line: 8745
Added line: 1553
```java
Added line: 9167
Added line: 2857
```
**Expected outcome:**
Added line: 6821
Added line: 4778
Added line: 9347
Added line: 1381
Added line: 1941
Added line: 2406
Added line: 667
PMD should report a violation at line ..., but doesn't. This is a false-negative.
Added line: 4537
Added line: 7420
Added line: 1685
Added line: 1244
Added line: 8605
Added line: 2527
Added line: 5885
Added line: 1636
**Running PMD through:** *[CLI | Ant | Maven | Gradle | Designer | Other]*
Added line: 4259
Added line: 2521
Added line: 5929
Added line: 7218
Added line: 532
Added line: 7458
Added line: 6443
Added line: 8367
Added line: 2443
Added line: 877
Added line: 9012
Added line: 2250
Added line: 7945

View File

@ -1,27 +1,118 @@
Added line: 8008
---
Added line: 1876
Added line: 1268
Added line: 3166
Added line: 3540
Added line: 1506
Added line: 4949
Added line: 8344
Added line: 4443
name: New Rule
about: You have an idea for a new rule? Great!
Added line: 1249
Added line: 509
Added line: 7136
Added line: 7138
Added line: 3547
title: ''
Added line: 8854
Added line: 7303
labels: 'a:new-rule'
assignees: ''
Added line: 7663
Added line: 4379
Added line: 3661
Added line: 5641
Added line: 1266
Added line: 2763
Added line: 7480
Added line: 1665
Added line: 7945
Added line: 8173
Added line: 1305
---
Added line: 1184
Added line: 783
Added line: 1036
<!-- Please, prefix the report title with the language it applies to within brackets, such as [java] or [apex] -->
Added line: 1687
**Proposed Rule Name:**
Added line: 9420
Added line: 9768
Added line: 6958
Added line: 3107
Added line: 4488
Added line: 5921
Added line: 8999
Added line: 3663
Added line: 9343
Added line: 8596
Added line: 4528
Added line: 7451
Added line: 9562
Added line: 2129
Added line: 7611
Added line: 3602
Added line: 9038
**Proposed Category:** One of [Best Practices | Code Style | Design | Documentation | Error Prone | Multithreading | Performance | Security]
**Description:**
Added line: 141
Added line: 9794
Added line: 3369
Added line: 9168
Added line: 3697
Added line: 6694
Added line: 691
Added line: 8738
Added line: 9018
Added line: 4391
Added line: 108
Added line: 4367
Added line: 5549
Added line: 6995
Added line: 4529
**Code Sample:** This should include code, that should be flagged by the rule. If possible, the "correct" code
Added line: 9295
Added line: 4422
Added line: 4374
Added line: 8540
Added line: 689
Added line: 5886
Added line: 4050
Added line: 972
Added line: 3942
according to this new rule should also be demonstrated.
```java
Added line: 3608
Added line: 1933
Added line: 2038
Added line: 7483
```
Added line: 4764
Added line: 8361
Added line: 6882
Added line: 6080
Added line: 4487
**Possible Properties:**
Added line: 5330
Added line: 6096
Added line: 8622
Added line: 4534
Added line: 7766
Added line: 8069
Added line: 6191
Added line: 7601
* Should this rule be customizable via properties?
Added line: 4112
Added line: 3265
Added line: 200
Added line: 6273
Added line: 7004
Added line: 7373

View File

@ -1,20 +1,109 @@
Added line: 6559
Added line: 7645
---
Added line: 7179
Added line: 4967
Added line: 9013
Added line: 7132
Added line: 1160
Added line: 3987
Added line: 7629
Added line: 4406
Added line: 7359
Added line: 930
Added line: 3460
Added line: 64
Added line: 50
Added line: 5031
name: Feature request
Added line: 3860
Added line: 954
Added line: 605
about: Suggest an idea for this project
Added line: 9836
Added line: 7559
Added line: 8444
Added line: 840
title: ''
Added line: 1809
Added line: 5258
Added line: 2334
Added line: 3166
labels: 'an:enhancement'
Added line: 1482
Added line: 4357
Added line: 1404
Added line: 6594
Added line: 4917
Added line: 5823
Added line: 2230
assignees: ''
Added line: 7536
Added line: 5103
Added line: 3902
Added line: 492
Added line: 3161
---
**Is your feature request related to a problem? Please describe.**
Added line: 834
Added line: 2572
Added line: 4912
Added line: 2318
Added line: 22
Added line: 3312
Added line: 8830
Added line: 3142
Added line: 5843
Added line: 4808
Added line: 2269
Added line: 5755
Added line: 7627
Added line: 576
Added line: 7077
Added line: 3997
Added line: 4922
Added line: 6340
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
Added line: 2533
Added line: 8768
Added line: 3704
A clear and concise description of what you want to happen.
Added line: 5417
Added line: 5871
Added line: 3411
Added line: 2663
Added line: 6534
Added line: 3280
Added line: 69
Added line: 4552
Added line: 7229
Added line: 3992
Added line: 7256
**Describe alternatives you've considered**
Added line: 9063
Added line: 5636
Added line: 137
Added line: 1672
Added line: 7168
Added line: 3765
Added line: 2224
Added line: 2718
Added line: 6811
Added line: 3957
Added line: 7792
A clear and concise description of any alternative solutions or features you've considered.
Added line: 8275
Added line: 5581
Added line: 218
Added line: 54
Added line: 9521
**Additional context**
Add any other context about the feature request here.
Added line: 1882
Added line: 9677
Added line: 1022
Added line: 7995

View File

@ -1,41 +1,132 @@
---
Added line: 7163
Added line: 6618
Added line: 6861
Added line: 2942
Added line: 8158
Added line: 6336
name: Bug report
Added line: 9925
Added line: 9757
about: Create a report to help us improve
Added line: 33
Added line: 5956
title: ''
Added line: 2940
Added line: 1892
labels: 'a:bug'
assignees: ''
Added line: 4373
Added line: 1277
Added line: 5367
Added line: 8360
---
<!-- Please, prefix the report title with the language it applies to within brackets, such as [java] or [apex].
Added line: 5857
Added line: 3641
Added line: 8564
Added line: 5755
Added line: 1866
Added line: 2958
Added line: 6216
Added line: 6953
If not specific to a language, you can use [core]. -->
Added line: 8422
**Affects PMD Version:**
Added line: 9
Added line: 9739
Make sure, to test with the latest PMD version.
Added line: 9684
Added line: 3625
Added line: 2132
**Description:**
Added line: 3063
Added line: 3495
Added line: 8522
Added line: 7768
Added line: 4591
Added line: 7657
A clear and concise description of what the bug is.
Added line: 7674
Added line: 3018
Added line: 3523
Added line: 6119
**Exception Stacktrace:**
Added line: 2639
Added line: 50
Added line: 3420
```
Added line: 340
Added line: 4118
# Copy-paste the stack trace here
```
**Code Sample demonstrating the issue:**
Added line: 4378
Added line: 2003
Added line: 7525
Added line: 1770
Added line: 819
Added line: 4668
Added line: 7062
Added line: 2213
Added line: 9134
Added line: 5477
Added line: 3791
Added line: 1072
Added line: 5265
```java
Added line: 9934
Added line: 1221
Added line: 144
Added line: 6855
```
Added line: 7445
Added line: 1398
**Steps to reproduce:**
Added line: 3258
Added line: 8918
Added line: 2863
Added line: 4767
Please provide detailed steps for how we can reproduce the bug.
Added line: 7324
1. ... (e.g. if you're using maven: `mvn clean verify`)
Added line: 8777
Added line: 4718
Added line: 486
Added line: 3912
Added line: 1625
Added line: 9318
Added line: 2355
2. ...
Added line: 6166
Added line: 4716
Added line: 654
Added line: 8612
Added line: 7142
Added line: 1363
Added line: 3087
Added line: 3566
Added line: 484
Added line: 4035
**Running PMD through:** *[CLI | Ant | Maven | Gradle | Designer | Other]*
Added line: 3112
Added line: 9169
Added line: 3475
Added line: 8337
Added line: 1293
Added line: 9095
<!-- If relevant, also include your JDK and OS information, e.g. for ClassNotFoundException, LinkageError, reflection failures, etc. -->
Added line: 4859
Added line: 6054
Added line: 6864
Added line: 7737

View File

@ -1,19 +1,108 @@
Added line: 4668
Added line: 7342
Added line: 645
Added line: 953
## Describe the PR
Added line: 1116
Added line: 1176
Added line: 8809
Added line: 5548
Added line: 4708
Added line: 3316
Added line: 9441
Added line: 5371
Added line: 8243
Added line: 7169
Added line: 6056
Added line: 9045
Added line: 5078
Added line: 176
Added line: 6174
Added line: 5742
Added line: 2568
Added line: 5271
Added line: 9953
Added line: 3920
Added line: 3102
Added line: 8277
Added line: 8774
Added line: 2491
Added line: 8878
<!-- A clear and concise description of the bug the PR fixes or the feature the PR introduces. -->
Added line: 6243
Added line: 6136
Added line: 2027
Added line: 883
Added line: 8919
Added line: 9637
Added line: 7519
Added line: 95
Added line: 2168
## Related issues
Added line: 8807
Added line: 3834
Added line: 5473
Added line: 9396
Added line: 1833
<!-- PR relates to issues in the `pmd` repo: -->
Added line: 3916
Added line: 9129
Added line: 2330
Added line: 8868
- Fixes #
Added line: 850
Added line: 313
## Ready?
Added line: 6588
Added line: 7355
Added line: 6171
Added line: 1836
Added line: 2404
Added line: 5026
Added line: 752
Added line: 8039
Added line: 8031
Added line: 3383
Added line: 1155
Added line: 7107
Added line: 7111
Added line: 7263
<!-- If you feel like you can help to check off the following tasks, that'd be great. If not, don't worry - we will take care of it. -->
Added line: 490
Added line: 2833
Added line: 9450
Added line: 6040
Added line: 1128
- [ ] Added unit tests for fixed bug/feature
Added line: 1293
Added line: 9752
Added line: 7365
Added line: 6415
Added line: 1369
Added line: 3745
Added line: 7506
- [ ] Passing all unit tests
- [ ] Complete build `./mvnw clean verify` passes (checked automatically by github actions)
Added line: 9397
Added line: 4392
Added line: 7361
Added line: 6623
Added line: 8770
Added line: 385
Added line: 1491
Added line: 6272
Added line: 9766
Added line: 223
Added line: 2967
Added line: 5136
Added line: 5049
- [ ] Added (in-code) documentation (if needed)
Added line: 9332
Added line: 5216
Added line: 9011

View File

@ -1,44 +1,133 @@
# How to build PMD
PMD uses [Maven](https://maven.apache.org/) and requires at least Java 11 for building.
Added line: 2738
Added line: 2088
You can get Java 11 from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
or from [AdoptOpenJdk](https://adoptopenjdk.net/).
Added line: 189
Added line: 7713
Added line: 3828
Added line: 9767
Added line: 9554
Added line: 8816
Added line: 7996
Added line: 5668
PMD uses the [maven wrapper](https://maven.apache.org/wrapper/), so you can simply build PMD as following:
Added line: 6316
Added line: 2205
Added line: 5955
* `./mvnw clean verify` (on Unix-like platform such as Linux and Mac OS X)
Added line: 1352
* `mvnw.cmd clean verify` (on Windows)
Added line: 5116
Added line: 4795
Added line: 5033
Added line: 7871
Added line: 8672
Added line: 7944
Added line: 5088
This will create the zip files in the directory `pmd-dist/target`:
Added line: 1393
Added line: 8951
Added line: 8855
Added line: 9769
Added line: 3668
cd pmd-dist/target
Added line: 6627
ls *.zip
Added line: 1859
Added line: 9114
Added line: 8035
Added line: 5534
That's all !
Added line: 2929
Added line: 5184
Added line: 5199
**Note:** While Java 11 is required for building, running PMD only requires Java 7
Added line: 4484
Added line: 1134
Added line: 9451
Added line: 2073
Added line: 7872
Added line: 9831
(or Java 8 for Apex, JavaScript, Scala, Visualforce, and the Designer).
Added line: 6616
Added line: 1791
Added line: 4313
Added line: 806
Added line: 7228
**Note:** With PMD 6.24.0, we are creating [Reproducible Builds](https://reproducible-builds.org/). Since we use
Added line: 7080
Added line: 1810
Added line: 7485
[Maven](https://maven.apache.org/guides/mini/guide-reproducible-builds.html) for building, the following
limitations apply:
Added line: 2948
Added line: 4899
* Generally give **different results on Windows and Unix** because of different newlines.
Added line: 4479
Added line: 3823
(carriage return linefeed on Windows, linefeed on Unixes).
Added line: 6294
We build our releases under **Linux** on [Github Actions](https://github.com/pmd/pmd/actions).
Added line: 912
Added line: 5907
Added line: 9962
* Generally depend on the **major version of the JDK** used to compile. (Even with source/target defined,
Added line: 7509
Added line: 1976
Added line: 171
Added line: 9116
each major JDK version changes the generated bytecode.).
Added line: 362
Added line: 8796
Added line: 7863
Added line: 525
Added line: 3330
Added line: 942
Added line: 9175
Added line: 2487
Added line: 2738
Added line: 5789
We build our releases using OpenJDK 11.
Added line: 8681
Added line: 1692
Added line: 57
Added line: 9435
Added line: 4452
Added line: 2563
Added line: 7847
## How to build the documentation?
Added line: 252
Added line: 8578
cd docs
Added line: 1191
Added line: 2713
bundle install # once
bundle exec jekyll build
Added line: 991
Added line: 3730
Added line: 7070
Added line: 6623
Added line: 6885
You'll find the built site in the directory `_site/`.
Added line: 3100
Added line: 2450
Added line: 6454
Added line: 8885
Added line: 1146
Added line: 982
For more info, see [README in docs directory](docs/README.md).

View File

@ -1,76 +1,165 @@
# How to contribute to PMD
First off, thanks for taking the time to contribute!
Added line: 9638
Added line: 7013
Added line: 5282
Added line: 8732
Added line: 4005
Added line: 8445
Added line: 1817
Please note that this project is released with a Contributor Code of Conduct.
Added line: 2253
Added line: 9476
By participating in this project you agree to abide by its terms.
Added line: 9650
Added line: 9346
Added line: 176
You can find the code of conduct in the file [code_of_conduct.md](code_of_conduct.md).
| NB: the rule designer is developed over at [pmd/pmd-designer](https://github.com/pmd/pmd-designer). Please refer to the specific [contributor documentation](https://github.com/pmd/pmd-designer/blob/main/CONTRIBUTING.md) if your issue, feature request or PR touches the designer. |
Added line: 2336
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Added line: 485
Added line: 7195
## Pull requests
Added line: 9917
Added line: 9732
* Please create your pull request against the `main` branch. We will rebase/merge it to the maintenance
Added line: 9567
Added line: 3042
branches, if necessary.
Added line: 5753
Added line: 5082
* We are using [checkstyle](http://checkstyle.sourceforge.net/) to enforce a common code style.
Added line: 6374
Added line: 6736
The check is integrated into the default build - so, make sure, you can [build PMD](BUILDING.md) without errors.
See [code style](#code-style) for more info.
Added line: 5433
Added line: 9324
Added line: 9717
Added line: 9572
Added line: 4760
Added line: 3324
Added line: 6207
Added line: 7939
## Bug reports
Added line: 687
Added line: 648
Added line: 860
Added line: 5964
Added line: 7731
Added line: 4598
We use the issue tracker on Github. Please report new bugs at <https://github.com/pmd/pmd/issues>.
Added line: 1689
When filing a bug report, please provide as much information as possible, so that we can reproduce the issue:
Added line: 4335
Added line: 7171
* The name of the rule, that is buggy
Added line: 6812
Added line: 6274
Added line: 6782
* A code snippet, which triggers a false positive/negative or crash
* How do you execute PMD? (command line, ant, maven, gradle, other)
Added line: 6124
## Documentation
Added line: 3615
Added line: 7433
Added line: 294
There is some documentation available under <https://docs.pmd-code.org/latest>. Feel free to create a bug report if
Added line: 4105
Added line: 4326
Added line: 7171
documentation is missing, incomplete or outdated. See [Bug reports](#bug-reports).
Added line: 7347
Added line: 7759
The documentation is generated as a Jekyll site, the source is available at: <https://github.com/pmd/pmd/tree/main/docs>. You can find build instructions there.
For more on contributing documentation check <https://docs.pmd-code.org/latest/pmd_devdocs_writing_documentation.html>
Added line: 3086
Added line: 3787
Added line: 7401
Added line: 2504
## Questions
Added line: 1299
There are various channels, on which you can ask questions:
Added line: 7287
* On [StackOverflow](https://stackoverflow.com/questions/tagged/pmd): Make sure, to tag your question with "pmd".
Added line: 4923
Added line: 9267
Added line: 3668
* Create a new discussion for your question at <https://github.com/pmd/pmd/discussions>.
* Ask your question in our [Gitter room](https://app.gitter.im/#/room/#pmd_pmd:gitter.im).
Added line: 1721
Added line: 312
## Code Style
Added line: 6860
Added line: 6132
PMD uses [checkstyle](http://checkstyle.sourceforge.net/) to enforce a common code style.
See [pmd-checkstyle-config.xml](https://github.com/pmd/build-tools/blob/main/src/main/resources/net/sourceforge/pmd/pmd-checkstyle-config.xml) for the configuration and
Added line: 7171
Added line: 1453
Added line: 1556
Added line: 3942
[the eclipse configuration files](https://github.com/pmd/build-tools/tree/main/eclipse) that can
be imported into a fresh workspace.
Added line: 581
Added line: 8163
Added line: 7384
Added line: 3400
## Add yourself as contributor
Added line: 3401
Added line: 6321
Added line: 8035
Added line: 3292
Added line: 926
Added line: 8461
We use [All Contributors](https://allcontributors.org/en).
To add yourself to the table of contributors, follow the
[bot usage instructions](https://allcontributors.org/docs/en/bot/usage) ;).
Or use the CLI:
Added line: 9829
1. Install the CLI: `npm i` (in PMD's top level directory)
Added line: 4344
Added line: 6847
Added line: 5588
2. Add yourself: `npx all-contributors add <username> <contribution>`
Added line: 2387
Where `username` is your GitHub username and `contribution` is a `,`-separated list
Added line: 163
Added line: 3108
Added line: 8975
Added line: 589
Added line: 3968
Added line: 2583
Added line: 8052
of contributions. See [Emoji Key](https://allcontributors.org/docs/en/emoji-key) for a list
of valid types. Common types are: "code", "doc", "bug", "blog", "talk", "test", "tutorial".
Added line: 153
Added line: 8349
See also [cli documentation](https://allcontributors.org/docs/en/cli/usage)
Added line: 7606

View File

@ -3,6 +3,7 @@ GEM
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
bigdecimal (3.1.8)
claide (1.1.0)
claide-plugins (0.9.2)
@ -13,7 +14,8 @@ GEM
concurrent-ruby (1.3.4)
cork (0.3.0)
colored2 (~> 3.1)
danger (9.5.0)
danger (9.5.1)
base64 (~> 0.2)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
@ -24,12 +26,14 @@ GEM
kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
octokit (>= 4.0)
pstore (~> 0.1)
terminal-table (>= 1, < 4)
differ (0.1.2)
et-orbi (1.2.11)
tzinfo
faraday (2.11.0)
faraday (2.12.0)
faraday-net_http (>= 2.0, < 3.4)
json
logger
faraday-http-cache (2.5.1)
faraday (>= 0.8)
@ -41,19 +45,20 @@ GEM
git (1.19.1)
addressable (~> 2.8)
rchardet (~> 1.8)
json (2.7.5)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (5.5.1)
logger (1.6.0)
logger (1.6.1)
logger-colors (1.0.0)
nap (1.1.0)
net-http (0.4.1)
uri
nokogiri (1.16.7-x86_64-linux)
racc (~> 1.4)
octokit (9.1.0)
octokit (9.2.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
open4 (1.3.4)
@ -64,26 +69,25 @@ GEM
nokogiri (~> 1.13)
rufus-scheduler (~> 3.8)
slop (~> 4.9)
pstore (0.1.3)
public_suffix (6.0.1)
raabro (1.4.0)
racc (1.8.1)
rchardet (1.8.0)
rexml (3.3.6)
strscan
rouge (4.4.0)
rufus-scheduler (3.9.1)
fugit (~> 1.1, >= 1.1.6)
rexml (3.3.9)
rouge (4.5.1)
rufus-scheduler (3.9.2)
fugit (~> 1.1, >= 1.11.1)
safe_yaml (1.0.5)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
slop (4.10.1)
strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (2.5.0)
unicode-display_width (2.6.0)
uri (0.13.1)
PLATFORMS
@ -98,4 +102,4 @@ DEPENDENCIES
safe_yaml
BUNDLED WITH
2.5.3
2.5.22

View File

@ -1,39 +1,85 @@
Added line: 197
Added line: 3456
Added line: 996
Added line: 3641
# PMD - source code analyzer
Added line: 9948
![PMD Logo](https://raw.githubusercontent.com/pmd/pmd/main/docs/images/logo/pmd-logo-300px.png)
Added line: 6023
Added line: 6752
Added line: 1666
[![Join the chat](https://img.shields.io/gitter/room/pmd/pmd)](https://app.gitter.im/#/room/#pmd_pmd:gitter.im?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://github.com/pmd/pmd/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/pmd/pmd/actions)
Added line: 9428
Added line: 8307
Added line: 5656
Added line: 9073
Added line: 379
Added line: 7887
Added line: 5565
Added line: 9358
Added line: 3986
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.sourceforge.pmd/pmd/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.sourceforge.pmd/pmd)
Added line: 7996
Added line: 5862
[![Reproducible Builds](https://img.shields.io/badge/Reproducible_Builds-ok-green?labelColor=blue)](https://github.com/jvm-repo-rebuild/reproducible-central/tree/master/content/net/sourceforge/pmd#readme)
[![Coverage Status](https://coveralls.io/repos/github/pmd/pmd/badge.svg)](https://coveralls.io/github/pmd/pmd)
[![Coverage Status](https://coveralls.io/repos/github/pmd/pmd/badge.svg?branch=main)](https://coveralls.io/github/pmd/pmd?branch=main)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ea550046a02344ec850553476c4aa2ca)](https://app.codacy.com/organizations/gh/pmd/dashboard)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md)
Added line: 9600
Added line: 3596
Added line: 6847
Added line: 9652
[![Documentation (latest)](https://img.shields.io/badge/docs-latest-green)](https://docs.pmd-code.org/latest/)
Added line: 9163
Added line: 1822
**PMD** is an extensible multilanguage static code analyzer. It finds common programming flaws like unused variables,
empty catch blocks, unnecessary object creation, and so forth. It's mainly concerned with **Java and
Apex**, but **supports 16 other languages**. It comes with **400+ built-in rules**. It can be
extended with custom rules. It uses JavaCC and Antlr to parse source files into abstract syntax trees
(AST) and runs rules against them to find violations. Rules can be written in Java or using a XPath query.
Added line: 5219
Currently, PMD supports Java, JavaScript, Salesforce.com Apex and Visualforce,
Added line: 4152
Added line: 5266
Added line: 1747
Added line: 8657
Added line: 1802
Added line: 6277
Added line: 411
Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML and XSL.
Added line: 707
Added line: 2944
Scala is supported, but there are currently no Scala rules available.
Added line: 7518
Additionally, it includes **CPD**, the copy-paste-detector. CPD finds duplicated code in
Coco, C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin,
Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex and
Added line: 826
Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML and XSL.
Added line: 7368
Added line: 4
## 🚀 Installation and Usage
Added line: 306
Download the latest binary zip from the [releases](https://github.com/pmd/pmd/releases/latest)
and extract it somewhere.
Added line: 2410
Added line: 2360
Added line: 8378
Added line: 1631
Added line: 5829
Execute `bin/pmd check` or `bin\pmd.bat check`.
Added line: 4259
See also [Getting Started](https://docs.pmd-code.org/latest/pmd_userdocs_installation.html)
Added line: 6755
**Demo:**
@ -45,40 +91,83 @@ There are plugins for Maven and Gradle as well as for various IDEs.
See [Tools / Integrations](https://docs.pmd-code.org/latest/pmd_userdocs_tools.html)
## How to get support?
Added line: 9673
Added line: 4858
Added line: 8880
* How do I? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd)
or on [discussions](https://github.com/pmd/pmd/discussions).
Added line: 4996
* I got this error, why? -- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/pmd)
or on [discussions](https://github.com/pmd/pmd/discussions).
Added line: 283
* I got this error and I'm sure it's a bug -- file an [issue](https://github.com/pmd/pmd/issues).
Added line: 8625
Added line: 1481
* I have an idea/request/question -- create a new [discussion](https://github.com/pmd/pmd/discussions).
Added line: 4762
* I have a quick question -- ask in our [Gitter room](https://app.gitter.im/#/room/#pmd_pmd:gitter.im).
Added line: 390
Added line: 3080
Added line: 124
Added line: 3074
* Where's your documentation? -- <https://docs.pmd-code.org/latest/>
Added line: 7903
Added line: 3362
Added line: 3918
## 🤝 Contributing
Added line: 2452
Added line: 2952
Added line: 7325
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Added line: 3190
Our latest source of PMD can be found on [GitHub](https://github.com/pmd/pmd). Fork us!
Added line: 9208
Added line: 4065
* [How to build PMD](BUILDING.md)
Added line: 5883
Added line: 577
Added line: 634
Added line: 5011
Added line: 5941
* [How to contribute to PMD](CONTRIBUTING.md)
The rule designer is developed over at [pmd/pmd-designer](https://github.com/pmd/pmd-designer).
Added line: 4274
Please see [its README](https://github.com/pmd/pmd-designer#contributing) for
developer documentation.
Added line: 1263
## 💵 Financial Contributors
Added line: 1554
Become a financial contributor and help us sustain our community. [Contribute](https://opencollective.com/pmd/contribute)
Added line: 7776
## ✨ Contributors
Added line: 8951
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Added line: 6606
Contributions of any kind welcome!
Added line: 7479
Added line: 9128
Added line: 1345
Added line: 1060
Added line: 7873
Added line: 902
Added line: 1538
See [credits](docs/pages/pmd/projectdocs/credits.md) for the complete list.
Added line: 1414
Added line: 5382
## 📝 License
Added line: 5436
Added line: 7077
[BSD Style](LICENSE)
Added line: 7917

View File

@ -1,14 +1,105 @@
Added line: 1269
Added line: 2508
Added line: 8213
Added line: 1769
Added line: 7893
Added line: 6930
Added line: 4947
# PMD's sponsors
Added line: 608
Added line: 3461
Added line: 7698
Added line: 752
Added line: 728
Added line: 3745
Added line: 4709
Added line: 168
Added line: 1613
Added line: 3267
Added line: 8189
Added line: 4303
Many thanks to all our sponsors:
Added line: 3956
Added line: 236
Added line: 1566
Added line: 8011
Added line: 5980
Added line: 7930
Added line: 6534
Added line: 9177
Added line: 7828
* [Matt Hargett](https://github.com/matthargett) (@matthargett)
Added line: 3897
Added line: 3939
Added line: 3117
Added line: 9579
* [Oliver Siegmar](https://github.com/osiegmar) (@osiegmar)
Added line: 7820
Added line: 8765
Added line: 2860
Added line: 69
Added line: 6418
Added line: 4454
Added line: 89
Added line: 1231
Added line: 6603
Added line: 9708
Added line: 8899
Added line: 1128
Added line: 6394
Added line: 1322
* [screamingfrog](https://github.com/screamingfrog) (@screamingfrog)
Added line: 51
Added line: 3284
Added line: 8651
* John Kuhl via opencollective
Added line: 4508
Added line: 2961
Added line: 3761
Added line: 9704
Added line: 720
Added line: 3465
Added line: 1009
Added line: 9655
Added line: 1612
Added line: 4841
Added line: 8710
Added line: 4693
Added line: 3290
Added line: 145
Added line: 769
Added line: 6497
Added line: 1001
Added line: 2702
Added line: 3745
Added line: 6620
Added line: 4825
Added line: 4622
Added line: 9545
Added line: 8762
Added line: 8661
Added line: 7475
Added line: 6386
* [flxbl-io](https://github.com/flxbl-io) (@flxbl-io)
Added line: 6057
Added line: 3058
Added line: 5310
Added line: 8320
Added line: 2618
Added line: 3662
Added line: 3395
Added line: 3119
Added line: 8086
If you also want to sponsor PMD, you have two options:
* [Sponsor @pmd on GitHub Sponsors](https://github.com/sponsors/pmd)
Added line: 6734
Added line: 9978
Added line: 7868
Added line: 6764
Added line: 9403
Added line: 9886
Added line: 351
Added line: 5200
* [PMD - Open Collective](https://opencollective.com/pmd)
Added line: 3830
Added line: 492

View File

@ -11,10 +11,11 @@
- root-node-name: name of the root node without prefix (eg "TopLevel"), will be made to implement RootNode
See AntlrGeneratedParserBase
-->
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<property name="target-package-dir" value="${antlr4.outputDirectory}/net/sourceforge/pmd/lang/${lang-id}/ast"/>
<property name="stamp-file" value="${project.build.directory}/last-generated-timestamp" />
<property name="lang-ast-package" value="net.sourceforge.pmd.lang.${lang-id}.ast" />
@ -32,14 +33,100 @@
<property name="base-visitor-file" value="${target-package-dir}/${base-visitor-name}.java"/>
<property name="listener-name" value="${lang-name}Listener"/>
<property name="listener-file" value="${target-package-dir}/${visitor-name}.java"/>
<property name="listener-file" value="${target-package-dir}/${listener-name}.java"/>
<property name="base-listener-name" value="${lang-name}BaseListener"/>
<property name="base-listener-file" value="${target-package-dir}/${base-visitor-name}.java"/>
<property name="base-listener-file" value="${target-package-dir}/${base-listener-name}.java"/>
<property name="node-itf-name" value="${lang-name}Node"/>
<property name="base-class-name" value="Abstract${lang-name}Node"/>
<property name="lexer-name" value="${lang-name}Lexer"/>
<property name="lexer-file" value="${target-package-dir}/${lexer-name}.java"/>
<target name="check-up-to-date"
description="Checks the input files are up to date">
<uptodate property="processing-not-required" targetfile="${stamp-file}">
<srcfiles dir="${target-package-dir}" includes="*.java" />
<srcfiles file="${ant.file}" />
</uptodate>
<echo message="Up-to-date check: processing-not-required=${processing-not-required}" />
</target>
<target name="update-stamp-file" unless="processing-not-required">
<touch file="${stamp-file}" />
</target>
<target name="annotate-classes" description="Adds the @Generated annotation to all classes"
unless="processing-not-required">
<if>
<available file="${parser-file}"/>
<then>
<replace file="${parser-file}"
token="public class ${parser-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public class ${parser-name}'/>
<!-- Parse tree classes for each element -->
<replace file="${parser-file}"
token="public static class "
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public static class '/>
</then>
</if>
<if>
<available file="${visitor-file}"/>
<then>
<replace file="${visitor-file}"
token="public interface ${visitor-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public interface ${visitor-name}'/>
</then>
</if>
<if>
<available file="${base-visitor-file}"/>
<then>
<replace file="${base-visitor-file}"
token="public class ${base-visitor-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public class ${base-visitor-name}'/>
</then>
</if>
<if>
<available file="${listener-file}"/>
<then>
<replace file="${listener-file}"
token="public interface ${listener-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public interface ${listener-name}'/>
</then>
</if>
<if>
<available file="${base-listener-file}"/>
<then>
<replace file="${base-listener-file}"
token="public class ${base-listener-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public class ${base-listener-name}'/>
</then>
</if>
<if>
<available file="${lexer-file}"/>
<then>
<replace file="${lexer-file}"
token="public class ${lexer-name}"
value='@net.sourceforge.pmd.annotation.Generated("org.antlr.v4.Tool")${line.separator}
public class ${lexer-name}'/>
</then>
</if>
</target>
<condition property="rename-parser">
<and>
<not>
@ -72,7 +159,9 @@
tofile="${parser-file}"/>
</target>
<target name="cpd-language" description="Adapt Antlr sources for CPD-only languages">
<target name="cpd-language" depends="check-up-to-date, annotate-classes, cpd-language-processing, update-stamp-file"/>
<target name="cpd-language-processing" description="Adapt Antlr sources for CPD-only languages"
unless="processing-not-required">
<!-- We only need the Lexer file. -->
<delete file="${parser-file}"/>
<delete>
@ -83,7 +172,9 @@
</delete>
</target>
<target name="pmd-language" description="Adapt Antlr sources for PMD languages" depends="rename-parser">
<target name="pmd-language" depends="check-up-to-date, rename-parser, annotate-classes, pmd-language-processing, update-stamp-file"/>
<target name="pmd-language-processing" description="Adapt Antlr sources for PMD languages"
unless="processing-not-required">
<!-- Adapt parser. -->
<replace file="${parser-file}">

View File

@ -1,40 +1,71 @@
Added line: 4397
Added line: 467
Added line: 9060
# Contributor Covenant Code of Conduct
Added line: 6883
## Our Pledge
Added line: 5918
We as members, contributors, and leaders pledge to make participation in our
Added line: 3783
community a harassment-free experience for everyone, regardless of age, body
Added line: 9204
size, visible or invisible disability, ethnicity, sex characteristics, gender
Added line: 5944
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
Added line: 3871
and orientation.
Added line: 1488
Added line: 3932
We pledge to act and interact in ways that contribute to an open, welcoming,
Added line: 3984
Added line: 1663
diverse, inclusive, and healthy community.
Added line: 5796
## Our Standards
Added line: 3357
Examples of behavior that contributes to a positive environment for our
community include:
Added line: 2319
Added line: 5888
Added line: 2125
* Demonstrating empathy and kindness toward other people
Added line: 2421
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
Added line: 3001
* Accepting responsibility and apologizing to those affected by our mistakes,
Added line: 1417
Added line: 6299
Added line: 1410
Added line: 7746
and learning from the experience
Added line: 8288
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
Added line: 2336
Added line: 4316
Added line: 6498
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
Added line: 8843
Added line: 8280
Added line: 4035
* Public or private harassment
* Publishing others' private information, such as a physical or email
Added line: 4412
Added line: 8438
address, without their explicit permission
Added line: 6413
* Other conduct which could reasonably be considered inappropriate in a
Added line: 343
professional setting
## Enforcement Responsibilities
@ -42,88 +73,148 @@ Examples of unacceptable behavior include:
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Added line: 1417
Added line: 7901
Community leaders have the right and responsibility to remove, edit, or reject
Added line: 4616
comments, commits, code, wiki edits, issues, and other contributions that are
Added line: 663
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
Added line: 3907
Added line: 804
Added line: 6018
Added line: 3411
## Scope
Added line: 6112
This Code of Conduct applies within all community spaces, and also applies when
Added line: 509
Added line: 4874
Added line: 2994
Added line: 919
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
Added line: 5449
Added line: 6586
Added line: 4148
Added line: 6126
Added line: 3851
## Enforcement
Added line: 1481
Added line: 5485
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
Added line: 9114
<moderators@pmd-code.org>.
All complaints will be reviewed and investigated promptly and fairly.
Added line: 2976
Added line: 6031
Added line: 9546
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
Added line: 352
Added line: 5636
## Enforcement Guidelines
Added line: 4168
Community leaders will follow these Community Impact Guidelines in determining
Added line: 563
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
Added line: 187
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
Added line: 9131
behavior was inappropriate. A public apology may be requested.
### 2. Warning
Added line: 1356
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
Added line: 9742
Added line: 8075
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
Added line: 1995
like social media. Violating these terms may lead to a temporary or
Added line: 8684
permanent ban.
Added line: 3819
Added line: 807
Added line: 8787
Added line: 8432
Added line: 176
Added line: 3819
Added line: 4660
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
Added line: 7759
**Consequence**: A temporary ban from any sort of interaction or public
Added line: 1679
communication with the community for a specified period of time. No public or
Added line: 4799
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
Added line: 1237
Added line: 2460
Added line: 8418
Added line: 4348
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
Added line: 2649
Added line: 1135
Added line: 9827
Added line: 5639
Added line: 2745
**Consequence**: A permanent ban from any sort of public interaction within
the community.
Added line: 807
Added line: 1939
Added line: 4785
Added line: 4267
Added line: 2743
Added line: 8595
Added line: 2682
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Added line: 8426
Added line: 9939
Added line: 491
Added line: 8411
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
Added line: 5983
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
Added line: 9177
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
Added line: 8389

View File

@ -1,8 +1,97 @@
Added line: 7126
Added line: 8893
---
Added line: 3432
Added line: 662
Added line: 5261
Added line: 857
Added line: 9864
Added line: 3753
Added line: 4730
Added line: 4408
Added line: 6063
Added line: 2736
Added line: 1500
Added line: 4883
Added line: 8952
Added line: 2168
Added line: 1623
Added line: 3682
Added line: 7554
Added line: 6005
Added line: 6585
title: "Page Not Found"
search: exclude
Added line: 4924
Added line: 6902
Added line: 8442
---
Added line: 8091
Added line: 612
Added line: 3152
Added line: 8180
Added line: 7935
Added line: 1523
Added line: 5373
Added line: 3738
Added line: 9184
Sorry, but the page you were trying to view does not exist. Check the URL for correctness, or try using keyword search using our search bar.
Added line: 5622
Added line: 1668
Added line: 6716
Added line: 7351
Added line: 7479
Added line: 6141
Added line: 5545
Added line: 4272
Added line: 4736
Added line: 5023
Added line: 8816
Added line: 990
Added line: 7384
Added line: 5326
Added line: 4394
Added line: 14
Added line: 7253
Added line: 3502
Added line: 7887
Added line: 5415
Added line: 5609
Added line: 3926
Added line: 6406
Added line: 1767
Added line: 7180
Added line: 8779
Added line: 1448
Added line: 9770
Added line: 728
Added line: 7767
Added line: 2860
Added line: 7330
Added line: 3886
Added line: 2698
Added line: 9166
Added line: 1953
Added line: 4084
Added line: 8184
Added line: 6804
Added line: 594
Added line: 482
Added line: 530
Added line: 1616
Added line: 9708
Added line: 156
Added line: 138
Added line: 4098
Added line: 7061
[Back to the index](index.html)
Added line: 2355
Added line: 3167
Added line: 6226
Added line: 3524
Added line: 1717
Added line: 6015
Added line: 750
Added line: 1268

View File

@ -1,8 +1,9 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.2.1)
activesupport (7.2.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
@ -15,6 +16,7 @@ GEM
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
benchmark (0.3.0)
bigdecimal (3.1.8)
coffee-script (2.4.1)
coffee-script-source
@ -34,9 +36,10 @@ GEM
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
execjs (2.9.1)
faraday (2.11.0)
execjs (2.10.0)
faraday (2.12.0)
faraday-net_http (>= 2.0, < 3.4)
json
logger
faraday-net_http (3.3.0)
net-http
@ -99,7 +102,7 @@ GEM
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
i18n (1.14.5)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jekyll (3.10.0)
addressable (~> 2.4)
@ -211,6 +214,7 @@ GEM
gemoji (>= 3, < 5)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
json (2.7.5)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
@ -219,7 +223,7 @@ GEM
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.0)
logger (1.6.1)
mercenary (0.3.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
@ -240,8 +244,7 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.6)
strscan
rexml (3.3.9)
rouge (3.30.0)
rubyzip (2.3.2)
safe_yaml (1.0.5)
@ -255,7 +258,6 @@ GEM
faraday (>= 0.17.3, < 3)
securerandom (0.3.1)
simpleidn (0.2.3)
strscan (3.1.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
typhoeus (1.4.1)
@ -264,7 +266,7 @@ GEM
concurrent-ruby (~> 1.0)
unicode-display_width (1.8.0)
uri (0.13.1)
webrick (1.8.2)
webrick (1.9.0)
PLATFORMS
x86_64-linux
@ -276,4 +278,4 @@ DEPENDENCIES
webrick
BUNDLED WITH
2.5.3
2.5.22

View File

@ -1,38 +1,131 @@
Added line: 9343
Added line: 9546
Added line: 3162
Added line: 4276
Added line: 6047
Added line: 1701
Added line: 4421
Added line: 7677
Added line: 5859
Added line: 585
Added line: 2212
Added line: 9603
# PMD Documentation
Added line: 6528
Added line: 4267
Added line: 9409
Added line: 9140
Added line: 750
Added line: 6853
Added line: 1652
Added line: 5165
Added line: 4704
Added line: 4909
Added line: 1382
The snapshot documentation (build by github pages) is available at: <https://pmd.github.io/pmd/>.
Added line: 632
Added line: 9426
The same documentation (build with our own scripts) is available at: <https://docs.pmd-code.org/snapshot/>.
Added line: 8060
Added line: 2374
Added line: 9514
Added line: 8114
The documentation for the latest release is at: <https://docs.pmd-code.org/latest/>
## Site Theme
This site was built using the tomjohnson1492/documentation-theme-jekyll theme
Added line: 9802
Added line: 1662
Added line: 7664
Added line: 7925
Added line: 3548
Added line: 7758
A Jekyll-based theme designed for documentation and help systems. See the link for detailed instructions on setting up and configuring everything. http://idratherbewriting.com/documentation-theme-jekyll/
Added line: 8624
Added line: 941
Added line: 7546
## Building using Script
Added line: 1549
Added line: 3467
Added line: 4367
Added line: 1237
Added line: 3983
Added line: 8702
Added line: 4873
Added line: 2185
bash build-docs.sh
This will run bundler to fetch and potentially update the ruby gems.
And then it will execute jekyll and build a offline site.
Added line: 8652
Added line: 6913
Added line: 7152
Added line: 3322
Added line: 3056
Added line: 3358
Added line: 1847
Added line: 9464
Added line: 3341
Open the file `_site/index.html` with your browser to see the site.
Added line: 2956
Added line: 2871
Added line: 5446
Added line: 5897
Added line: 9683
Added line: 3264
Added line: 3336
## Building using Bundler
Added line: 5109
bundle install # once
Added line: 2992
Added line: 404
Added line: 3432
Added line: 1565
Added line: 4427
bundle exec jekyll serve
Added line: 1611
Added line: 2576
Go to: http://localhost:4005/
Added line: 9557
This variant is useful to get constant updates: When you modify a file, jekyll will automatically rebuild
the site, so you just need to hit Refresh in the browser to see the update.
Added line: 4267
Added line: 2115
Added line: 9884
Added line: 7800
Added line: 4922
Added line: 4465
Added line: 7392
Added line: 6415
Added line: 66
Added line: 1991
Added line: 7186
Added line: 6218
Added line: 8647
Added line: 6041
## Building using Docker
Added line: 5578
Added line: 6879
Added line: 3908
Added line: 6751
docker build --no-cache -t pmd-doc . # once
docker run --rm=true -v "$PWD:/src" -p 4005:4005 pmd-doc serve -H 0.0.0.0
Added line: 1156
Added line: 6500
Go to: http://localhost:4005/
Added line: 5732
Added line: 3049
Added line: 5996
Added line: 6524
Added line: 889
Added line: 1712
Added line: 3668
Added line: 442
Added line: 1492
Added line: 9108

View File

@ -1,9 +1,9 @@
repository: pmd/pmd
pmd:
version: 7.6.0
previous_version: 7.5.0
date: 2024-09-27
version: 7.8.0-SNAPSHOT
previous_version: 7.7.0
date: 2024-11-29
# release types: major, minor, bugfix
release_type: minor

View File

@ -1,47 +1,136 @@
# Assets used
## Fontawesome
Added line: 7233
Added line: 6519
Added line: 800
Added line: 1075
Added line: 3221
Doc: https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself
Added line: 8510
Download: https://use.fontawesome.com/releases/v5.15.4/fontawesome-free-5.15.4-web.zip
Added line: 2631
Added line: 2487
Added line: 9775
Added line: 9098
Added line: 4741
Added line: 8245
Added line: 775
Added line: 245
Added line: 3446
Added line: 3698
## Bootstrap
Added line: 636
Added line: 4848
Added line: 7945
Added line: 968
Added line: 3407
Added line: 1912
Doc: https://getbootstrap.com/docs/4.5/getting-started/introduction/
Added line: 7787
Added line: 3443
Added line: 4462
Download: https://getbootstrap.com/docs/4.5/getting-started/download/
Added line: 2468
Added line: 1386
Added line: 3307
## JQuery
Added line: 8172
Added line: 100
Added line: 3568
Added line: 5350
Added line: 8929
Added line: 1606
Added line: 1622
Added line: 3311
https://jquery.com/download/
Added line: 8453
Added line: 9852
We need the full version (not slim), as navgoco requires this.
Added line: 8137
## AnchorJs
Added line: 2087
Added line: 5210
Added line: 612
Added line: 1565
Added line: 9570
Added line: 3158
Added line: 4003
Added line: 2480
Added line: 4419
Added line: 4254
https://github.com/bryanbraun/anchorjs/releases/tag/4.2.2
Added line: 1472
## JQuery navgoco
Added line: 2833
Added line: 6210
Added line: 737
Added line: 1394
Added line: 4462
https://github.com/tefra/navgoco/releases/tag/0.2.1
Added line: 2902
Added line: 6958
Added line: 765
## JQuery UI
Added line: 1307
https://jqueryui.com/
https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip
Added line: 4235
Added line: 3194
## Simple Jekyll Search
https://github.com/christian-fei/Simple-Jekyll-Search
Added line: 1632
Added line: 1076
Added line: 211
Added line: 8077
Added line: 3429
Added line: 8959
Added line: 7617
Added line: 4719
Added line: 1719
Added line: 9434
Added line: 3969
Added line: 6819
## Shuffle
Added line: 2687
Added line: 7087
Added line: 3284
https://github.com/Vestride/Shuffle
Added line: 3919
Added line: 3517
Added line: 5809
Added line: 4127
https://github.com/Vestride/Shuffle/releases/tag/v5.2.3
Added line: 9549
Added line: 7779
Example: https://vestride.github.io/Shuffle/
Added line: 6966
Added line: 1061
Added line: 1057
Added line: 8325
Added line: 9970
Added line: 2421
## jekyll-table-of-contents
Added line: 7459
Added line: 6771
Added line: 6769
Added line: 9659
https://github.com/ghiculescu/jekyll-table-of-contents

View File

@ -1,34 +1,123 @@
Added line: 4311
Added line: 536
Added line: 2705
Added line: 4014
Added line: 1541
Added line: 7476
Font Awesome Free License
Added line: 6182
Added line: 5946
Added line: 1207
Added line: 6056
Added line: 5045
Added line: 1476
Added line: 8316
Added line: 3378
Added line: 2640
Added line: 9226
-------------------------
Added line: 8374
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Added line: 5862
Added line: 1285
Added line: 313
Added line: 8677
Added line: 1773
Added line: 8629
Added line: 6476
Added line: 2596
Added line: 5627
Added line: 8927
Added line: 8265
Added line: 8688
Added line: 3396
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
Added line: 9235
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
Added line: 7638
Added line: 6887
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
Added line: 9274
Added line: 2708
Added line: 2918
Added line: 5860
Added line: 1196
In the Font Awesome Free download, the SIL OFL license applies to all icons
Added line: 5701
Added line: 1159
packaged as web and desktop font files.
Added line: 3518
Added line: 2191
Added line: 5583
Added line: 5706
Added line: 1209
Added line: 8275
# Code: MIT License (https://opensource.org/licenses/MIT)
Added line: 2792
Added line: 5874
Added line: 8142
In the Font Awesome Free download, the MIT license applies to all non-font and
Added line: 4654
Added line: 2816
non-icon files.
Added line: 8796
Added line: 685
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Added line: 7705
Added line: 1570
Added line: 2751
Added line: 5996
Added line: 2219
Awesome Free files already contain embedded comments with sufficient
Added line: 8252
Added line: 764
Added line: 9235
Added line: 8630
Added line: 94
Added line: 5715
attribution, so you shouldn't need to do anything additional when using these
Added line: 8761
files normally.
Added line: 848
Added line: 9665
Added line: 1479
We've kept attribution comments terse, so we ask that you do not actively work
Added line: 9743
Added line: 3403
Added line: 3430
Added line: 9625
Added line: 8001
to remove them from files, especially code. They're a great way for folks to
Added line: 6531
learn about Font Awesome.
Added line: 9977
Added line: 6120
Added line: 831
Added line: 4611
Added line: 6739
Added line: 631
Added line: 7356
# Brand Icons
Added line: 1122
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Added line: 9105
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
Added line: 2061
Added line: 5475
Added line: 1831
Added line: 9338
Added line: 5193
Added line: 2557
to represent the company, product, or service to which they refer.**
Added line: 2903
Added line: 6724
Added line: 2657

View File

@ -1,31 +1,120 @@
Added line: 7997
Added line: 4128
## How to create pmd-demo.gif
Added line: 8389
Added line: 9400
Added line: 5552
Added line: 1900
Added line: 4458
Added line: 520
### Prepare
Added line: 516
Added line: 4734
Added line: 9035
Added line: 478
Added line: 5628
```shell
Added line: 568
Added line: 9591
Added line: 1788
Added line: 9382
Added line: 8072
Added line: 1066
mkdir $HOME/pmd-demo
Added line: 4755
Added line: 4418
Added line: 2436
cd $HOME/pmd-demo
Added line: 5176
Added line: 4765
Added line: 5829
Added line: 4311
Added line: 9851
curl -L -o jdk-master.zip https://github.com/openjdk/jdk/archive/refs/heads/master.zip
Added line: 8872
Added line: 2004
Added line: 2273
unzip jdk-master.zip
Added line: 2720
Added line: 7916
alias pmd=$HOME/PMD/source/pmd/pmd-dist/target/pmd-bin-7.0.0-SNAPSHOT/bin/pmd
clear
Added line: 2041
Added line: 3105
pmd --version
pmd check -R rulesets/java/quickstart.xml -d jdk-master/src/java.base -f text --cache pmd.cache --report-file jdk-report.txt
```
Added line: 8991
Added line: 9725
Second terminal window: `cd $HOME/pmd-demo; tail -f jdk-report.txt`
Added line: 6414
Added line: 2105
Added line: 8890
Added line: 452
### Recording
Record screencast with https://github.com/EasyScreenCast/EasyScreenCast (a gnome3 extension)
Added line: 2029
Added line: 6720
Added line: 5823
Added line: 7016
Added line: 5146
The recorded screencast can be found in `$HOME/Videos`.
### Converting
Added line: 9930
Added line: 9780
Added line: 4772
Added line: 8548
Added line: 3287
Added line: 5364
Added line: 8498
Added line: 6133
Added line: 5282
Added line: 7196
Convert webm to gif: https://engineering.giphy.com/how-to-make-gifs-with-ffmpeg/
Added line: 8900
Added line: 1259
Added line: 8472
Added line: 7379
Added line: 3811
Added line: 573
Added line: 8048
Added line: 3004
Added line: 7636
Added line: 6523
Added line: 4728
Added line: 7621
Added line: 8593
Added line: 3763
Added line: 8813
Added line: 3345
Added line: 6785
Added line: 5000
Added line: 1868
Added line: 6611
Added line: 3341
Added line: 5949
Added line: 9446
```shell
cd $HOME/Videos
Added line: 7751
ffmpeg -i pmd7-demo.webm -filter_complex "[0:v] fps=12,scale=960:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" pmd7-demo.gif
Added line: 1586
Added line: 7143
Added line: 8366
Added line: 7588
Added line: 9089
Added line: 7929
Added line: 8258
Added line: 5805
Added line: 5824
Added line: 5459
Added line: 8447
```
Added line: 1661
Added line: 3312

View File

@ -1,29 +1,42 @@
---
title: Documentation Index
keywords: java
Added line: 9592
permalink: index.html
toc: false
summary: >
Welcome to the documentation site for PMD and CPD! <br/><br/>
Added line: 3028
last_updated: October 2022
author: Jeff Jensen <jjensen@apache.org>, Andreas Dangel <andreas.dangel@adangel.org>,
Clément Fournier <clement.fournier76@gmail.com>
Added line: 2037
Added line: 7383
Added line: 2370
Added line: 6657
additional_js:
- assets/Shuffle-5.2.3/dist/shuffle.min.js
- assets/jquery-ui-1.12.1/jquery-ui.min.js
Added line: 4022
Added line: 7674
- js/shuffle.js
---
Added line: 1803
## 💡 Overview
Added line: 144
Added line: 7616
<!-- You can link to an individual panel, the id is determined from the title of the panel -->
Added line: 2306
Added line: 8823
<!-- See custom/shuffle_panel.html for the details -->
Added line: 9476
**PMD** is an extensible multilanguage static code analyzer. It finds common programming flaws like unused variables,
empty catch blocks, unnecessary object creation, and so forth. It's mainly concerned with **Java and
Apex**, but **supports 16 other languages**. It comes with **400+ built-in rules**. It can be
@ -31,41 +44,62 @@ extended with custom rules. It uses JavaCC and Antlr to parse source files into
(AST) and runs rules against them to find violations. Rules can be written in Java or using a XPath query.
Currently, PMD supports Java, JavaScript, Salesforce.com Apex and Visualforce,
Added line: 8383
Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML and XSL.
Scala is supported, but there are currently no Scala rules available.
Added line: 5830
Additionally, it includes **CPD**, the copy-paste-detector. CPD finds duplicated code in
Added line: 1795
Coco, C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin,
Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex and
Added line: 9992
Added line: 7306
Added line: 414
Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML and XSL.
Added line: 9534
PMD features many **built-in checks** (in PMD lingo, *rules*), which are documented
for each language in our [Rule references](#shuffle-panel-rule-references). We
Added line: 8032
also support an extensive API to [**write your own rules**](#shuffle-panel-writing-rules),
which you can do either in Java or as a self-contained XPath query.
PMD is most useful when **integrated into your build process**. It can then be
used as a quality gate, to enforce a coding standard for your codebase. Among other
Added line: 1438
things, PMD can be run:
* As a [Maven goal](pmd_userdocs_tools_maven.html)
Added line: 2122
* As an [Ant task](pmd_userdocs_tools_ant.html)
* As a [Gradle task](pmd_userdocs_tools_gradle.html)
Added line: 7158
* As a [bld operation](pmd_userdocs_tools_bld.html)
* From [command-line](pmd_userdocs_installation.html#running-pmd-via-command-line)
Added line: 7062
**CPD**, the **copy-paste detector**, is also distributed with PMD. You can use it
in a variety of ways, which are [documented here](pmd_userdocs_cpd.html).
## 💾 Download
Added line: 5568
Added line: 5385
Added line: 8170
The latest release of PMD can be downloaded from our [Github releases page](https://github.com/pmd/pmd/releases/latest).
Added line: 910
The Logo is available from the [Logo Project Page](pmd_projectdocs_logo.html).
Added line: 6195
## 📖 Documentation
Added line: 2347
Added line: 7881
Added line: 509
The rest of this page exposes the contents of the documentation site thematically,
which you can further scope down using the blue filter buttons. To navigate the site,
Added line: 5816
you may also use the search bar in the top right, or the sidebar on the left.
## ✨ Contributors
@ -75,43 +109,63 @@ Contributions of any kind welcome!
See [credits](pmd_projectdocs_credits.html) for the complete list.
Added line: 7557
<br/>
Added line: 2263
Added line: 3219
<div class="filter-options" id='grid-rule' >
Added line: 6325
<button class="btn btn-primary" data-group="all">All</button>
Added line: 2481
<button class="btn btn-primary" data-group="getting_started">Getting Started</button>
Added line: 9849
<button class="btn btn-primary" data-group="userdocs">User documentation</button>
Added line: 3048
<button class="btn btn-primary" data-group="extending">Extending PMD</button>
<button class="btn btn-primary" data-group="contributing">Contributing</button>
</div>
Added line: 6970
Added line: 2973
<div id="grid" class="row">
<!-- TODO the "getting started" panel is not that useful. It would be better to make a page series. -->
Added line: 8586
{% include custom/shuffle_panel.html
title="Getting started"
Added line: 6162
Added line: 7576
tags="getting_started"
datagroups='["getting_started"]'
Added line: 7296
description="These pages summarize the gist of PMD usage to get you started quickly." %}
Added line: 7649
Added line: 6472
{% include custom/shuffle_panel.html
title="Rule references"
Added line: 9490
tags="rule_references"
Added line: 45
Added line: 2782
datagroups='["userdocs"]'
Added line: 4875
description="Pick your language to find out about the rule it supports."
fa-icon="fa-database"
Added line: 2300
titlemaker="page.language_name" %}
Added line: 724
{% include custom/shuffle_panel.html
title="Writing rules"
tags="userdocs,extending"
datagroups='["userdocs", "extending", "contributing"]'
Added line: 6684
description="These pages document the process of writing and testing custom rules and metrics for PMD."
%}
@ -124,38 +178,73 @@ See [credits](pmd_projectdocs_credits.html) for the complete list.
description="Learn how to build effective and versatile rulesets."
%}
Added line: 9707
Added line: 1938
Added line: 1944
{% include custom/shuffle_panel.html
Added line: 4741
title="Contributing"
tags="devdocs"
Added line: 3631
Added line: 3066
except_tags="extending"
Added line: 7860
datagroups='["contributing"]'
fa-style="fab"
fa-icon="fa-github"
description="If you'd like to help us build PMD, these topics may interest you. See you around!"
Added line: 2981
%}
Added line: 2753
Added line: 4408
{% include custom/shuffle_panel.html
title="Tools and integrations"
Added line: 1385
Added line: 9182
Added line: 9736
Added line: 7099
tags="tools"
datagroups='["userdocs"]'
Added line: 2927
description="These pages describe solutions that integrate PMD within your build process."
Added line: 9861
%}
Added line: 1334
Added line: 9902
{% include custom/shuffle_panel.html
Added line: 2446
title="Major contributions"
Added line: 9858
tags="devdocs,extending"
datagroups='["contributing","extending"]'
description=""
%}
Added line: 9894
Added line: 3363
Added line: 9035
Added line: 6258
<!-- sizer -->
Added line: 144
<div class="col-xs-6 col-sm-4 col-md-1 shuffle_sizer"></div>
Added line: 641
Added line: 3792
Added line: 7857
</div>
Added line: 5206
Added line: 6150
Added line: 8327
<!-- {% include image.html file="pmd-logo-big.png" alt="PMD Logo" %} -->
Added line: 2636
Added line: 5082
Added line: 9116
Added line: 6943
{% include links.html %}

View File

@ -1,27 +1,117 @@
Added line: 8597
Added line: 9144
/* This license pertains to the Navgoco jQuery component used for the sidebar. */
Added line: 7170
Added line: 1834
Added line: 7992
Added line: 4626
Copyright (c) 2013, Christodoulos Tsoulloftas, http://www.komposta.net
Added line: 2091
Added line: 8162
Added line: 3363
All rights reserved.
Added line: 1502
Added line: 7880
Added line: 194
Added line: 2858
Added line: 1722
Added line: 3800
Added line: 2593
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Added line: 9086
Added line: 3093
Added line: 2321
Added line: 4859
Added line: 5874
Added line: 3164
Added line: 5738
Added line: 9354
Added line: 7141
Added line: 7068
Added line: 425
Added line: 7780
Added line: 5266
Added line: 1404
Added line: 9728
Added line: 965
Added line: 9138
Added line: 8731
* Redistributions of source code must retain the above copyright notice,
Added line: 8221
Added line: 2835
Added line: 5840
Added line: 1663
Added line: 8800
Added line: 3368
Added line: 9239
Added line: 584
Added line: 2461
Added line: 4534
Added line: 9812
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
Added line: 8110
Added line: 2030
Added line: 5678
Added line: 9236
Added line: 8424
Added line: 2289
Added line: 2365
and/or other materials provided with the distribution.
Added line: 442
Added line: 839
Added line: 359
Added line: 5093
Added line: 555
* Neither the name of the <Christodoulos Tsoulloftas> nor the names of its
contributors may be used to endorse or promote products derived from this
Added line: 5699
Added line: 6955
Added line: 5436
Added line: 8652
Added line: 1674
Added line: 1520
Added line: 5143
Added line: 3478
Added line: 4876
software without specific prior written permission.
Added line: 5625
Added line: 7278
Added line: 5441
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
Added line: 6873
Added line: 1732
Added line: 4280
Added line: 1045
Added line: 9479
Added line: 6481
Added line: 3257
Added line: 5128
Added line: 8929
Added line: 6328
Added line: 6204
Added line: 4899
Added line: 7328
Added line: 1606
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Added line: 6507
Added line: 3283
Added line: 2909
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
Added line: 2145
Added line: 4364
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Added line: 6483
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
Added line: 8221
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Added line: 4534
OF THE POSSIBILITY OF SUCH DAMAGE.Added line: 9343
Added line: 2220
Added line: 9221

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,116 @@
Added line: 9287
Added line: 6102
Added line: 3720
Added line: 8258
Added line: 9542
Added line: 3484
Added line: 4267
Added line: 5856
Added line: 1241
Added line: 280
Added line: 2858
Added line: 3127
---
Added line: 2794
title: Getting Help
Added line: 1272
Added line: 7432
permalink: pmd_about_help.html
author: Andreas Dangel <andreas.dangel@pmd-code.org>
last_updated: January 2021
---
Added line: 61
Added line: 3071
Added line: 2081
Added line: 6367
Added line: 5648
Added line: 286
Added line: 6995
Added line: 1943
Added line: 2213
Added line: 3049
Added line: 3838
Added line: 6074
Added line: 8399
Added line: 2576
Added line: 9785
There are numerous ways of getting help:
Added line: 1111
Added line: 1995
Added line: 2679
Added line: 7715
Added line: 1834
Added line: 4485
Added line: 2170
Added line: 2799
Added line: 8656
Added line: 1382
Added line: 7560
Added line: 6076
Added line: 889
Added line: 4931
Added line: 5123
Added line: 6308
Added line: 6332
Added line: 8630
Added line: 5198
Added line: 6778
* Search for already existing questions on [StackOverflow](https://stackoverflow.com/).
Added line: 1381
Added line: 9725
Added line: 7298
Added line: 6681
Added line: 4430
* If you can't find your problem, post a new question. Don't forget to tag the question with [`pmd`](https://stackoverflow.com/questions/tagged/pmd).
* If you found a bug, please create a new [github issue](https://github.com/pmd/pmd/issues).
* You can also ask questions on [github discussions](https://github.com/pmd/pmd/discussions).
Added line: 3383
Added line: 7869
Added line: 905
Added line: 5061
Added line: 1486
Added line: 6943
Added line: 9596
Added line: 8573
Added line: 7199
Added line: 5492
Added line: 9116
Added line: 694
Added line: 7475
Added line: 9520
Added line: 8564
Added line: 4029
Added line: 2789
Added line: 8964
Added line: 6484
Added line: 1114
Added line: 2637
Added line: 8654
Added line: 1094
Added line: 726
Added line: 5665
Added line: 5733
Added line: 5386
* Or you can join the [Mailing List](https://lists.sourceforge.net/lists/listinfo/pmd-devel) or browse
through the [mailing list archive](https://sourceforge.net/p/pmd/mailman/pmd-devel/).
Added line: 6847
Added line: 7712
Added line: 5951
Added line: 4909
Added line: 7174
Added line: 607
Added line: 8631
Added line: 7078
Added line: 2585
Added line: 9517
Added line: 8143
Added line: 6853
Added line: 171
Added line: 9303
Added line: 1900
Added line: 8965
* Of course, you can also directly jump to our [source code on github](https://github.com/pmd/pmd).
Added line: 7930
Added line: 6675
Added line: 2961
Added line: 6175
Added line: 6595

View File

@ -1,55 +1,148 @@
---
title: Release schedule and version policies
permalink: pmd_about_release_policies.html
Added line: 3622
Added line: 9109
Added line: 4575
author: Andreas Dangel <andreas.dangel@pmd-code.org>
last_updated: June 2024 (PMD 7.3.0)
Added line: 2122
Added line: 549
---
Added line: 100
Added line: 1958
Added line: 1533
Added line: 1472
## Release schedule
Added line: 6150
Added line: 232
Added line: 9731
PMD uses a time-based release schedule.
Added line: 6014
Added line: 6955
Added line: 3144
Added line: 6878
Added line: 3202
We release a new minor version **every month**, usually on the last Friday of the month.
Added line: 8631
A patch release will only be done if necessary (e.g. blocker bugs).
Added line: 6636
Added line: 2714
Added line: 9082
Added line: 3042
Added line: 22
## Version policy
Added line: 4347
PMD aims to follow [SemVer](https://semver.org/), that means, versions are numbered in the form MAJOR.MINOR.PATCH.
Added line: 3840
Added line: 7308
Added line: 4547
Added line: 4715
Added line: 8417
Added line: 5561
Added line: 6835
Added line: 2295
Added line: 866
Added line: 2915
Added line: 7959
Added line: 6847
Added line: 2922
A **major** release can break any compatibility, and it means more effort to upgrade to the next major version (like
it was from 6.x to 7.x, see [Migration Guide for PMD 7](pmd_userdocs_migrating_to_pmd7.html).
Added line: 5079
Added line: 658
A **minor** release tries to be compatible so that an effortless (aka "drop-in replacement") upgrade is possible
with some exceptions.
Such releases might contain:
Added line: 745
Added line: 2458
Added line: 6441
Added line: 4448
Added line: 6192
Added line: 215
Added line: 2501
Added line: 7784
Added line: 5142
Added line: 5523
* fixed false-positive (FP) issues for rules
* fixed false-negative (FN) issues for rules: These fixes might break your builds, as new violations might be found.
Added line: 8572
* new rules: these new rules are not used by default _if_ you use custom rulesets, so they shouldn't affect your builds.
Added line: 494
Added line: 8627
Added line: 909
Added line: 2389
* deprecations of existing functionality
Added line: 4001
Added line: 2755
Added line: 3695
Added line: 2331
Added line: 2315
Added line: 3419
Added line: 4138
Added line: 7575
In summary: we only guarantee stability on how you integrate / use the tool, but builds may start failing because
we fixed FNs, or introduced a new rule (ie: for people referencing whole categories).
We stick to our current approach when moving / renaming rules of deprecating them, and referencing
the new one until the next major.
Added line: 4592
Added line: 6538
Added line: 1054
Added line: 5797
Added line: 8139
Added line: 7021
Added line: 8949
Added line: 6978
Added line: 9423
A **patch** release absolutely is a drop-in replacement. So only bugs (ie: crashes or obviously broken stuff,
Added line: 132
Added line: 9769
Added line: 3688
like rules not being applied at all), or security issues (dependency updates, hardening, etc.) are part of
Added line: 8614
a patch release.
See also
* [ADR 3 - API evolution principles](pmd_projectdocs_decisions_adr_3.html)
Added line: 2286
* [Rule deprecation policy](pmd_devdocs_rule_deprecation_policy.html)
Added line: 6042
Added line: 362
Added line: 5383
Added line: 2845
Added line: 8646
## Git branches/tags policy
Added line: 4005
Added line: 2707
Added line: 143
Added line: 9095
Added line: 1377
Added line: 3303
Added line: 4408
Added line: 195
* Main development happens on the main branch (currently called `main`).
Added line: 2813
* PR and enhancements are done on the main branch.
Added line: 5356
Added line: 1033
Added line: 5620
* Releases are usually done directly from the main branch, we don't create release branches.
Added line: 8799
Added line: 7715
Added line: 1246
Added line: 4406
Added line: 8204
* Each release has its own tag named `pmd_releases/MAJOR.MINOR.PATCH`.
* In case of a patch release, we either do it from the main branch (if there was no development ongoing)
Added line: 540
Added line: 2507
or create a separate branch off the last release tag.
Added line: 4886
* See also [Release process](pmd_projectdocs_committers_releasing.html).

View File

@ -1,25 +1,114 @@
---
title: Support lifecycle
Added line: 6414
Added line: 9225
Added line: 6280
Added line: 4967
Added line: 4807
Added line: 2247
Added line: 2124
Added line: 796
Added line: 326
Added line: 6275
Added line: 882
Added line: 6741
Added line: 3184
Added line: 3919
Added line: 185
Added line: 570
Added line: 3556
Added line: 9347
permalink: pmd_about_support_lifecycle.html
Added line: 3715
Added line: 9200
Added line: 4374
Added line: 831
Added line: 8210
Added line: 9401
Added line: 7316
Added line: 3779
Added line: 6771
Added line: 7809
Added line: 1196
Added line: 9890
Added line: 6927
Added line: 4132
Added line: 519
Added line: 7532
Added line: 6915
Added line: 8264
author: Andreas Dangel <andreas.dangel@pmd-code.org>
last_updated: June 2024 (PMD 7.3.0)
Added line: 3700
Added line: 6878
Added line: 6927
Added line: 2996
---
Added line: 1452
Added line: 9422
Added line: 1987
Added line: 655
{% capture latest_release %}{{site.pmd.version}} ({{site.pmd.date | date: "%Y-%m-%d" }}){% endcapture %}
Added line: 5576
| Major version | Initial release | Latest Release | Required Java Version | In development / still supported? |
|---------------|--------------------|----------------------|-----------------------|-----------------------------------|
Added line: 9813
Added line: 3697
Added line: 7377
Added line: 9372
| 7.x | 7.0.0 (2024-03-22) | {{ latest_release }} | 8 | ✔ yes |
Added line: 8398
| 6.x | 6.0.0 (2017-12-15) | 6.55.0 (2023-02-25) | 7 | ❌ no |
Added line: 3003
Added line: 3764
Added line: 8780
| 5.x | 5.0.0 (2012-05-01) | 5.8.1 (2017-07-01) | 7 | ❌ no |
| 4.x | 4.0 (2007-07-20) | 4.3 (2011-11-04) | 5 | ❌ no |
Added line: 3069
Added line: 1450
Added line: 5903
Added line: 4070
Added line: 2501
| 3.x | 3.0 (2005-03-23) | 3.9 (2006-12-19) | 4 | ❌ no |
Added line: 2689
Added line: 8081
Added line: 4989
Added line: 3550
Added line: 4572
Added line: 4982
| 2.x | 2.0 (2004-10-19) | 2.3 (2005-02-01) | | ❌ no |
Added line: 2421
| 1.x | 1.0 (2002-11-04) | 1.9 (2004-07-14) | | ❌ no |
Added line: 8466
Added line: 426
Added line: 8712
In general, only the latest major version is in active development and regularly will receive new features
Added line: 7646
Added line: 6747
Added line: 4355
Added line: 2304
and bug fixes etc.
Added line: 9303
Added line: 905
Added line: 5964
Added line: 8326
Once a new version is released, the previous version becomes unsupported.
Added line: 1284
Added line: 2268
Added line: 9006
We recommend to always update to the latest version to benefit from new features and bug fixes.
Added line: 8959
Added line: 1159
Added line: 2051
Added line: 7399
Added line: 9504
Added line: 1505
Added line: 4710
Added line: 3943
Added line: 2415
Added line: 5983
See also [Release process and version policies](pmd_about_release_policies.html).
Added line: 8186
Added line: 1281

View File

@ -1,89 +1,180 @@
---
Added line: 1486
Added line: 205
title: Building PMD from source
tags: [devdocs]
permalink: pmd_devdocs_building.html
Added line: 1504
author: Tom Copeland, Xavier Le Vourch <xlv@users.sourceforge.net>
---
<!-- Gives visibility -->
Added line: 1815
Added line: 8960
{%include note.html content="TODO add IDE specific indications" %}
Added line: 5222
# Compiling PMD
Added line: 8850
Added line: 5177
* JDK 11 or higher
Added line: 1237
Added line: 4433
Added line: 4037
Added line: 2789
{% include note.html content="While Java 11 is required for building, running PMD only requires Java 7
(or Java 8 for Apex, JavaScript, Scala, Visualforce, and the Designer)." %}
Added line: 8477
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:
Added line: 5897
```
Added line: 9791
[tom@hal building]$ ls -l
total 5716
Added line: 357
Added line: 2607
Added line: 9620
Added line: 9363
Added line: 9040
Added line: 9776
Added line: 7174
-rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-{{site.pmd.version}}.zip
[tom@hal building]$ unzip -q pmd-src-{{site.pmd.version}}.zip
Added line: 5461
Added line: 7856
[tom@hal building]$
Added line: 6832
```
Added line: 9038
Added line: 9036
Added line: 5637
Added line: 6878
Added line: 8232
Now cd down into the `pmd` directory:
Added line: 3637
```
Added line: 929
Added line: 9017
Added line: 6131
Added line: 7299
Added line: 4957
[tom@hal building]$ cd pmd-src-{{site.pmd.version}}
[tom@hal pmd-src-{{site.pmd.version}}]$ ls -l | grep pom.xml
-rw-rw-r-- 1 tom tom 36482 14\. Nov 17:36 pom.xml
[tom@hal pmd-src-{{site.pmd.version}}]$
```
Added line: 4864
Added line: 6679
Thats the project configuration for maven… lets compile!
Added line: 1347
Added line: 8035
```
[tom@hal pmd-src-{{site.pmd.version}}]$ ./mvnw clean verify
Added line: 1728
[INFO] Scanning for projects...
Added line: 6927
Added line: 682
Added line: 5749
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
Added line: 5993
[INFO] PMD
Added line: 8063
Added line: 8393
Added line: 1473
[INFO] PMD Core
...
... after a few minutes ...
[INFO] ------------------------------------------------------------------------
Added line: 6790
Added line: 7680
[INFO] Reactor Summary:
Added line: 1205
[INFO]
[INFO] PMD ................................................ SUCCESS [ 3.061 s]
Added line: 8650
Added line: 1010
Added line: 1082
Added line: 9578
Added line: 3369
Added line: 4470
[INFO] PMD Core ........................................... SUCCESS [ 25.675 s]
[INFO] PMD Test Framework ................................. SUCCESS [ 0.457 s]
[INFO] PMD C++ ............................................ SUCCESS [ 1.893 s]
Added line: 2979
[INFO] PMD C# ............................................. SUCCESS [ 0.619 s]
Added line: 8190
Added line: 2272
Added line: 6338
[INFO] PMD Fortran ........................................ SUCCESS [ 0.609 s]
Added line: 6487
Added line: 6580
[INFO] PMD Go ............................................. SUCCESS [ 0.103 s]
[INFO] PMD Java ........................................... SUCCESS [01:08 min]
Added line: 8664
Added line: 4452
Added line: 2248
[INFO] PMD JavaScript ..................................... SUCCESS [ 3.279 s]
Added line: 7276
Added line: 8700
Added line: 1303
Added line: 3277
Added line: 4950
[INFO] PMD JSP ............................................ SUCCESS [ 3.944 s]
Added line: 3806
Added line: 1652
[INFO] PMD Matlab ......................................... SUCCESS [ 1.342 s]
Added line: 5592
[INFO] PMD Objective-C .................................... SUCCESS [ 2.281 s]
[INFO] PMD PHP ............................................ SUCCESS [ 0.536 s]
Added line: 2227
[INFO] PMD PL/SQL ......................................... SUCCESS [ 10.973 s]
Added line: 3100
Added line: 3762
[INFO] PMD Python ......................................... SUCCESS [ 1.758 s]
[INFO] PMD Ruby ........................................... SUCCESS [ 0.438 s]
Added line: 7552
[INFO] PMD Velocity ....................................... SUCCESS [ 3.941 s]
Added line: 3501
Added line: 5461
Added line: 2264
Added line: 1462
[INFO] PMD XML and XSL .................................... SUCCESS [ 2.174 s]
Added line: 9048
Added line: 194
Added line: 7352
Added line: 6280
[INFO] PMD Scala .......................................... SUCCESS [ 11.901 s]
Added line: 2886
[INFO] PMD Distribution Packages .......................... SUCCESS [ 11.366 s]
[INFO] PMD Java 8 Integration ............................. SUCCESS [ 0.560 s]
[INFO] ------------------------------------------------------------------------
Added line: 9870
Added line: 6524
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Added line: 7787
Added line: 4774
[INFO] Total time: 02:36 min
[INFO] Finished at: 2015-11-14T17:46:06+01:00
Added line: 1401
Added line: 1016
[INFO] Final Memory: 63M/765M
[INFO] ------------------------------------------------------------------------
[tom@hal pmd-src-{{site.pmd.version}}]$
```
Added line: 8160
Now the source and binary distribution zip files can be found in the folder `pmd-dist/target`.
**Notes:**
Added line: 8499
Added line: 5515
- The rules that have already been written are specified in the `src/main/resources/category/` directories of
the specific languages, e.g. `pmd-java/src/main/resources/category`.
Added line: 2425
Added line: 5716
Added line: 4992
Theyre also in the jar file thats included with both the source and binary distributions.
Added line: 4476

View File

@ -1,40 +1,131 @@
---
Added line: 9044
Added line: 4344
Added line: 5858
Added line: 4950
title: Developer Resources
tags: [devdocs]
permalink: pmd_devdocs_development.html
last_updated: March 2024
---
## Source Code
Added line: 8562
Added line: 4316
Added line: 8776
The complete source code can be found on Github:
Added line: 5870
Added line: 140
* [github.com/pmd/pmd](https://github.com/pmd/pmd) - main PMD repository. Includes all the code to support all languages, including this documentation.
Added line: 3601
Added line: 7382
* [github.com/pmd/pmd.github.io](https://github.com/pmd/pmd.github.io) - Contains the landing page [https://pmd.github.io](https://pmd.github.io)
Added line: 8850
Added line: 4933
Added line: 8990
Added line: 5002
Added line: 7118
* [github.com/pmd/build-tools](https://github.com/pmd/build-tools) - Contains the checkstyle rules we use
Added line: 5955
Added line: 2189
Added line: 1851
Added line: 6733
* [github.com/pmd/pmd-eclipse-plugin](https://github.com/pmd/pmd-eclipse-plugin) - The PMD eclipse plugin
Added line: 8842
* [github.com/pmd](https://github.com/pmd) - PMD Organization at github. There are a couple of more repositories
Added line: 2553
Added line: 8209
Added line: 2734
Added line: 4079
Added line: 722
## Continuous Integration
Added line: 8417
Added line: 2337
Added line: 2429
Added line: 3261
Added line: 5791
Added line: 6367
Added line: 2013
Added line: 2371
We use [GitHub Actions](https://github.com/pmd/pmd/actions) as our ci service. The main repo and the eclipse plugin are built for
Added line: 6916
every push. Each pull request is built as well.
Added line: 9663
Added line: 4139
Added line: 9239
Added line: 6333
Added line: 422
Added line: 8330
Added line: 9714
The maven snapshot artifacts are deployed at [Sonatypes OSS snapshot repository](https://oss.sonatype.org/content/repositories/snapshots/net/sourceforge/pmd/pmd/).
Added line: 7855
Added line: 2008
Added line: 9518
Added line: 3700
Ready-to-use binary packages are uploaded to sourceforge at <https://sourceforge.net/projects/pmd/files/pmd/>.
Added line: 7311
Added line: 8268
Added line: 1607
## Documentation and Webpages
Added line: 9212
Main documentation server is [docs.pmd-code.org](https://docs.pmd-code.org).
Added line: 2569
Added line: 9142
A [snapshot](http://docs.pmd-code.org/snapshot/) of the web site for the new version is generated by the ci job as well.
Added line: 3673
Added line: 9583
Added line: 147
Added line: 5666
Added line: 965
The latest release documentation is always available under [docs.pmd-code.org/latest](https://docs.pmd-code.org/latest/)
## Contributing
Added line: 3918
Added line: 6298
Added line: 1901
Added line: 1779
Added line: 8777
Added line: 4233
Added line: 969
Added line: 6393
Added line: 8466
Added line: 5040
Added line: 1633
Added line: 2487
Added line: 9369
Added line: 4599
Added line: 7034
Added line: 4860
First off, thanks for taking the time to contribute!
Added line: 8898
Added line: 5643
Added line: 7796
Added line: 1093
Please have a look at [CONTRIBUTING.md](https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md) and
Added line: 9352
Added line: 5842
Added line: 8313
Added line: 6896
Added line: 2726
Added line: 3377
Added line: 2582
[BUILDING.md](https://github.com/pmd/pmd/blob/main/BUILDING.md).
Added line: 6568
Added line: 1439
Added line: 3467
Added line: 8225
Added line: 7152
Added line: 4366
Added line: 6013
Added line: 8481
Added line: 5913
Added line: 6405
Added line: 3111
Added line: 919

Some files were not shown because too many files have changed in this diff Show More