Compare commits

..

1596 Commits

Author SHA1 Message Date
Andreas Dangel
8477966aad [maven-release-plugin] prepare release pmd_releases/5.5.5 2017-03-27 22:34:37 +02:00
Andreas Dangel
826e75166b Prepare pmd release 5.5.5 2017-03-27 22:28:22 +02:00
Andreas Dangel
350152e795 Merge branch 'pmd/5.4.x' into pmd/5.5.x 2017-03-27 22:17:14 +02:00
Andreas Dangel
d1d9a2e2e2 Prepare next development version 2017-03-27 22:09:14 +02:00
Andreas Dangel
998fac4d55 [maven-release-plugin] prepare for next development iteration 2017-03-27 22:07:10 +02:00
Andreas Dangel
d9675bbc6f [maven-release-plugin] prepare release pmd_releases/5.4.6 2017-03-27 22:07:00 +02:00
Andreas Dangel
19ee0cd37b InefficientEmptyStringCheck: Fix NPE 2017-03-27 21:55:38 +02:00
Andreas Dangel
076a108ee0 Prepare pmd release 5.4.6 2017-03-27 21:44:08 +02:00
Andreas Dangel
f8077851b6 Merge branch 'issue-309' into pmd/5.4.x 2017-03-27 21:33:23 +02:00
Andreas Dangel
23ac01aa90 Merge branch 'issue-309' into pmd/5.5.x 2017-03-27 21:14:56 +02:00
Andreas Dangel
abe2e8561c Fixes #309: [java] Parse error on method reference 2017-03-27 21:07:28 +02:00
Juan Martín Sotuyo Dodero
0c3a72fa9e Merge branch 'pr-308' into pmd/5.5.x 2017-03-26 23:58:19 -03:00
Juan Martín Sotuyo Dodero
88763bf58d Merge branch 'pr-308' into pmd/5.4.x 2017-03-26 23:51:18 -03:00
Juan Martín Sotuyo Dodero
c32f12e09f Update changelog, refs #308 2017-03-26 23:41:36 -03:00
Juan Martín Sotuyo Dodero
6458883a61 Improve test, cover cases whith no rule / assert 2017-03-26 23:38:26 -03:00
Clément Fournier
493e289200 Added test case 2017-03-26 23:38:26 -03:00
Clément Fournier
80a469c4c7 Removed debug outputs 2017-03-26 23:38:25 -03:00
Clément Fournier
0a25010869 Cleaned up 2017-03-26 23:38:25 -03:00
Clément Fournier
d2642920ec Added original test case 2017-03-26 23:38:25 -03:00
Clément Fournier
b9bb0ca373 Completed bug fix 2017-03-26 23:38:25 -03:00
Clément Fournier
b74e205663 Added test case 2017-03-26 23:38:25 -03:00
Clément Fournier
746f7c0682 Get the @Rule annotated ExpectedExceptions fields 2017-03-26 23:38:25 -03:00
Clément Fournier
38d3f4f67f Cleaned up one method 2017-03-26 23:38:22 -03:00
Juan Martín Sotuyo Dodero
74b6c71025 Merge branch 'pr-307' into pmd/5.5.x 2017-03-23 13:15:52 -03:00
Juan Martín Sotuyo Dodero
abea414e57 Merge branch 'pr-307' into pmd/5.4.x 2017-03-23 13:14:28 -03:00
Juan Martín Sotuyo Dodero
f644aa5744 Update changelog, refs #307 2017-03-23 13:14:02 -03:00
Clément Fournier
a07b8c7fd0 Separated test cases 2017-03-23 13:02:08 -03:00
Clément Fournier
beac88cef6 Optimised conditionals 2017-03-23 13:01:58 -03:00
Clément Fournier
94e3e25c03 Cleaned up 2017-03-23 13:01:50 -03:00
Clément Fournier
c63d8f3191 Fixed bug with inverted ternary expression 2017-03-23 13:01:45 -03:00
Juan Martín Sotuyo Dodero
1c065a56ae Merge branch 'pr-306' into pmd/5.5.x 2017-03-22 20:35:16 -03:00
Juan Martín Sotuyo Dodero
b7a311a110 Merge branch 'pr-306' into pmd/5.4.x 2017-03-22 20:32:18 -03:00
Juan Martín Sotuyo Dodero
f0a7ab1ff4 Update changelog, refs #306 2017-03-22 20:29:29 -03:00
Andreas Dangel
8f1901f128 PMD run script:
*   fixes #305
*   consider also "MINGW*" as cygwin
*   do not convert empty paths to avoid warnings
2017-03-22 20:27:23 -03:00
Juan Martín Sotuyo Dodero
e261b71258 Merge branch 'pr-303' into pmd/5.5.x 2017-03-22 15:40:43 -03:00
Juan Martín Sotuyo Dodero
0dafee632b Merge branch 'pr-303' into pmd/5.4.x 2017-03-22 15:39:39 -03:00
Juan Martín Sotuyo Dodero
133f3d99df Update changelog 2017-03-22 15:38:57 -03:00
Clément Fournier
c62ad45cf6 Specialized condition 2017-03-22 15:14:09 -03:00
Clément Fournier
3454c6eb4e Removed test class 2017-03-22 15:13:59 -03:00
Clément Fournier
6bf8138aaf Added violation case for InefficientEmptyStringCheckRule
String.trim().isEmpty() now triggers a violation.

Fixed checkstyle
2017-03-22 15:13:41 -03:00
Andreas Dangel
f70690b511 Merge branch 'issue-282' into pmd/5.5.x 2017-03-18 10:59:20 +01:00
Andreas Dangel
bdd6f208c9 Update changelog, references #282 2017-03-18 10:58:57 +01:00
Juan Martín Sotuyo Dodero
8e9f9388d4 [java] Fix FP on UnnecessaryLocalBeforeReturn
- If the local is initialized using another variable that is later
used, don't consider it a violation. Assume the later use is destructive
and the order is important.
 - Fixes #282
2017-03-18 10:58:57 +01:00
Andreas Dangel
0e9aab43e7 Merge branch 'issue-291' into pmd/5.5.x 2017-03-18 10:39:09 +01:00
Andreas Dangel
fc8f835093 Update changelog, references #291 2017-03-18 10:38:51 +01:00
Juan Martín Sotuyo Dodero
b05d42de48 [java] Revamp AccessorClassGeneration
- Fixes #291
 - Complete rewrite. Simpler and faster, using the RuleChain and SymbolTable.
2017-03-18 10:38:19 +01:00
Juan Martín Sotuyo Dodero
89c131fe3b Merge branch 'pr-296' into pmd/5.5.x 2017-03-17 22:30:12 -03:00
Juan Martín Sotuyo Dodero
ccd926db05 Update changelog, refs #296 2017-03-17 22:29:28 -03:00
Sergey
31b2a950cb Unit test 2017-03-17 22:13:21 -03:00
Sergey
47c1178fec Bug fix for IsNotBlank 2017-03-17 22:13:12 -03:00
Juan Martín Sotuyo Dodero
2f998aa817 Update changelog, refs #289 2017-03-17 18:45:11 -03:00
Juan Martín Sotuyo Dodero
8c88adc8da Merge branch 'pr-289' into pmd/5.5.x 2017-03-17 18:34:13 -03:00
Sergey
16e5831a19 CRUD bug fixes 2017-03-17 18:21:02 -03:00
Andreas Dangel
16f2094401 Merge branch 'issue-275' into pmd/5.5.x 2017-03-03 19:12:51 +01:00
Andreas Dangel
2b74a25f09 Merge branch 'issue-275' into pmd/5.4.x 2017-03-03 19:05:23 +01:00
Andreas Dangel
59de7a1460 Update changelog, fixes #275 2017-03-03 19:05:15 +01:00
Juan Martín Sotuyo Dodero
19114a7030 Simplify XPath expression 2017-03-03 19:03:26 +01:00
Juan Martín Sotuyo Dodero
fb405fef08 [java] fields in annotations are public static
- Fixes #275
2017-03-03 19:03:26 +01:00
Andreas Dangel
2efd877999 Merge branch 'issue-274' into pmd/5.5.x 2017-03-03 18:44:16 +01:00
Andreas Dangel
44120bb882 Update changelog, fixes #274 2017-03-03 18:44:06 +01:00
Juan Martín Sotuyo Dodero
7a1eb4f26e [java] Fix class scopes for anon inner classes
- A new ClassScope was being created for each annon inner class method / field,
    which is incorrect.
 - I reworked the AccessorMethodGeneration to compare scopes directly, since
    I was missing anonymous classes completely.
 - Fixes #274
2017-03-03 18:42:36 +01:00
Andreas Dangel
9291125bd0 Remove .travis-toolchains.xml - since it has been moved to .travis/ 2017-03-03 15:44:21 +01:00
Andreas Dangel
00992bf593 Merge branch 'travis-automated-releases' into pmd/5.5.x 2017-03-03 15:43:45 +01:00
Andreas Dangel
d45466646f Merge branch 'travis-automated-releases' into pmd/5.4.x 2017-03-03 15:42:36 +01:00
Andreas Dangel
14428ed3bf Improve release notes upload to github 2017-03-03 15:42:10 +01:00
Andreas Dangel
158e1501ea Update github oauth token 2017-03-03 15:41:23 +01:00
Andreas Dangel
7f31d0262c [doc] Update release process documentation 2017-03-03 15:41:23 +01:00
Andreas Dangel
a55e88c413 Use sparse checkout for pmd.github.io 2017-03-03 15:41:23 +01:00
Juan Martín Sotuyo Dodero
b8d034cb87 Merge branch 'pr-280' into pmd/5.5.x 2017-03-01 12:28:58 -03:00
Juan Martín Sotuyo Dodero
b183caeec1 Update changelog 2017-03-01 12:28:27 -03:00
Sergey
865130aeab Moving Pattern to static constant 2017-03-01 12:27:18 -03:00
Sergey
fdb0d21127 Improving CRUD detection for Aggregate Results 2017-03-01 12:19:34 -03:00
Andreas Dangel
2dc0937350 Merge branch 'travis-fixes' into pmd/5.5.x 2017-02-27 20:48:37 +01:00
Andreas Dangel
07366b1f8b Merge branch 'travis-fixes' into pmd/5.4.x 2017-02-27 20:43:47 +01:00
Andreas Dangel
9388ce551e Travis - redirect output of sonar build into file 2017-02-27 20:43:37 +01:00
Andreas Dangel
d8a367187c Travis - only run "mvn deploy", when it should be run 2017-02-27 20:43:37 +01:00
Andreas Dangel
a39561df5f Setup the secrets only for non-pull-request builds when we have the
secure environment variables
2017-02-27 20:43:37 +01:00
Andreas Dangel
bbd8360cb3 Merge branch 'travis-release-ghpages' into pmd/5.5.x 2017-02-25 21:39:02 +01:00
Andreas Dangel
81f5b0d174 Merge branch 'travis-release-ghpages' into pmd/5.4.x 2017-02-25 21:38:55 +01:00
Andreas Dangel
2196924b7d Specify branch name when pushing, make commit quiet 2017-02-25 21:38:42 +01:00
Andreas Dangel
ea3c109274 Merge branch 'travis-release-fix2' into pmd/5.5.x 2017-02-25 21:30:08 +01:00
Andreas Dangel
61df693ab4 Merge branch 'travis-release-fix2' into pmd/5.4.x 2017-02-25 21:30:00 +01:00
Andreas Dangel
6e4a5aef0e Fix condition for when to upload the binaries to sourceforge
Travis builds each commit during the release process: this means,
the commit on the branch, which changes the version to a non-
SNAPSHOT version, is also built. And after that, the tag is built.
Therefore, we upload, when we build SNAPSHOTS or when we build from a
tag.
2017-02-25 21:29:45 +01:00
Andreas Dangel
96b358dc84 Merge branch 'travis-release' into pmd/5.5.x 2017-02-25 21:12:46 +01:00
Andreas Dangel
34b210c47e Merge branch 'travis-release' into pmd/5.4.x 2017-02-25 21:12:34 +01:00
Andreas Dangel
fcc515902c Add json request in output in case of error
Fix release script
2017-02-25 21:12:18 +01:00
Andreas Dangel
a7ba0b47a6 Prepare next development version 2017-02-25 20:46:30 +01:00
Andreas Dangel
12fb1c2d7f [maven-release-plugin] prepare for next development iteration 2017-02-25 20:44:32 +01:00
Andreas Dangel
765a542604 [maven-release-plugin] prepare release pmd_releases/5.5.4 2017-02-25 20:44:24 +01:00
Andreas Dangel
88bdb85976 Prepare pmd release 5.5.4 2017-02-25 20:38:42 +01:00
Andreas Dangel
e5a126c9d6 Merge branch 'pmd/5.4.x' into pmd/5.5.x 2017-02-25 20:31:17 +01:00
Andreas Dangel
3d4e17b2cf Merge branch 'travis-automated-release' into pmd/5.4.x 2017-02-25 20:09:27 +01:00
Andreas Dangel
ab578e8ad7 Set autoReleaseAfterClose to true 2017-02-25 20:09:07 +01:00
Andreas Dangel
38173659b3 Update release script, most steps are automatic now 2017-02-25 20:07:37 +01:00
Andreas Dangel
d8ee6717ee Travis Build fixes
* Do only perform a release, if building from tag
* Add missing git config
* Output github releases request in case of error
2017-02-25 20:06:30 +01:00
Andreas Dangel
d29ab78bd7 Prepare next development version 2017-02-25 19:08:00 +01:00
Andreas Dangel
4c7774ebf0 [maven-release-plugin] prepare for next development iteration 2017-02-25 19:03:45 +01:00
Andreas Dangel
0eec906467 [maven-release-plugin] prepare release pmd_releases/5.4.5 2017-02-25 19:03:37 +01:00
Andreas Dangel
c292c10ab1 Prepare pmd release 5.4.5 2017-02-25 18:57:14 +01:00
Andreas Dangel
847f5710b6 Merge branch 'pr-273' into pmd/5.5.x 2017-02-25 18:37:30 +01:00
Andreas Dangel
e151ee9e77 Update changelog, references #273 2017-02-25 18:30:06 +01:00
Rodrigo Fernandes
5ffcdd7903 Shade jackson on apex 2017-02-25 18:29:23 +01:00
Andreas Dangel
c05c0e0d62 Delete temporary file after test 2017-02-25 17:41:18 +01:00
Andreas Dangel
8eeb0f25c7 Update github release data after deploy step with name + changelog 2017-02-25 17:38:05 +01:00
Andreas Dangel
03b39acd0b travis: add files and repo configuration for releases, upload pmd.github.io 2017-02-25 16:24:31 +01:00
Andreas Dangel
b17f93085f Add web.sourceforge.net to ssh_known_hosts 2017-02-25 11:55:21 +01:00
Andreas Dangel
4d16c8d2d2 Log output of site building into file, to avoid travis log file limit
See also http://stackoverflow.com/questions/26082444/how-to-work-around-travis-cis-4mb-output-limit/26082445#26082445
2017-02-25 11:31:09 +01:00
Andreas Dangel
dea5babb94 Another approach to get the current version that is being built 2017-02-25 10:57:41 +01:00
Andreas Dangel
209c36e02c Move maven installation and configuration into separate script for travis 2017-02-25 10:57:14 +01:00
Andreas Dangel
4c33ac21f7 echo out the current version being built by travis 2017-02-25 10:07:12 +01:00
Andreas Dangel
d5d485f47a Fix javadoc. Since jdk8u121 no <script> tags are allowed by default.
See Release Notes of jdk8u121:
> tools/javadoc(tool)
> New --allow-script-in-comments option for javadoc
> The javadoc tool will now reject any occurrences of JavaScript code in
> the javadoc documentation comments and command-line options, unless the
> command-line option, --allow-script-in-comments is specified.
>
> With the --allow-script-in-comments option, the javadoc tool will
> preserve JavaScript code in documentation comments and command-line
> options. An error will be given by the javadoc tool if JavaScript
> code is found and the command-line option is not set.
> JDK-8138725 (not public)
2017-02-25 09:59:16 +01:00
Andreas Dangel
cce475d382 Exclude secrets from src distribution 2017-02-24 23:13:45 +01:00
Andreas Dangel
2a416c8165 Update java and maven in travis build 2017-02-24 22:51:40 +01:00
Andreas Dangel
6613a79429 Only rsync the snapshot site from master branch 2017-02-24 22:01:20 +01:00
Andreas Dangel
57049e0c15 Remove travis plugin to enable toolchain.
Remove duplicated server entry in settings.xml
2017-02-24 21:32:19 +01:00
Andreas Dangel
97dd84a374 Use gpg instead of gpg2 2017-02-24 20:41:52 +01:00
Andreas Dangel
f8f96e886e change directory back 2017-02-24 20:40:19 +01:00
Andreas Dangel
d8065f231d Merge branch 'travis-automated-release' into pmd/5.4.x 2017-02-24 20:36:59 +01:00
Andreas Dangel
b6bd4c3c47 Use tar archive, since travis supports only one encrypted file 2017-02-24 20:36:45 +01:00
Andreas Dangel
a481aebb3d Merge branch 'travis-automated-release' into pmd/5.4.x 2017-02-24 20:30:26 +01:00
Andreas Dangel
597f598237 Reencrypt files for travis 2017-02-24 20:29:37 +01:00
Andreas Dangel
4b26b692ed Merge branch 'travis-automated-release' into pmd/5.4.x 2017-02-24 20:17:29 +01:00
Andreas Dangel
aa4b641f3b Remove unneded before_script section 2017-02-24 20:16:38 +01:00
Andreas Dangel
bafe0f451a Add missing secret keys for travis 2017-02-24 20:10:52 +01:00
Andreas Dangel
a0fe5222ad New travis build scripts
*   one for pull requests
*   one for pushes
*   one for releases
2017-02-24 20:10:22 +01:00
Andreas Dangel
a37381e756 Prepare travis environment:
*   configure maven
*   configure ssh key
*   configure gpg key
2017-02-24 20:10:22 +01:00
Andreas Dangel
32a56fd155 Use nexus staging profile, don't use oss-parent anymore 2017-02-24 20:10:22 +01:00
Andreas Dangel
76a7d28d80 Be explicit about the travis steps 2017-02-24 20:09:38 +01:00
Andreas Dangel
4a73f1d4f1 Move travis specific files into own subdirectory .travis 2017-02-24 20:09:38 +01:00
Juan Martín Sotuyo Dodero
cedf1888cf First step to Travis automatic release 2017-02-24 20:07:30 +01:00
Andreas Dangel
0b8fe7b290 Merge branch 'language-sorting' into pmd/5.5.x 2017-02-24 15:10:02 +01:00
Andreas Dangel
d3ac23b57c Merge branch 'language-sorting' into pmd/5.4.x 2017-02-24 15:01:10 +01:00
Andreas Dangel
40ed158204 Sort languages by terse name 2017-02-24 15:00:52 +01:00
Andreas Dangel
f628962844 Update integration test 2017-02-24 14:40:40 +01:00
Andreas Dangel
00540a8e45 Sort supported languages by name by default, so that we have
a consistent order.
2017-02-24 14:40:31 +01:00
Juan Martín Sotuyo Dodero
ecb5ff570f Merge branch 'broken-usage-link' into pmd/5.5.x 2017-02-23 08:39:51 -03:00
Juan Martín Sotuyo Dodero
f677427ae8 Merge branch 'broken-usage-link' into pmd/5.4.x 2017-02-23 08:39:23 -03:00
Juan Martín Sotuyo Dodero
94c931d7ee Ruleset config was moved from usage to customizing 2017-02-23 08:38:59 -03:00
Juan Martín Sotuyo Dodero
d9e5d07e98 Merge branch 'broken-links' into pmd/5.5.x 2017-02-22 19:31:20 -03:00
Juan Martín Sotuyo Dodero
ced8802c91 Merge branch 'broken-links' into pmd/5.4.x 2017-02-22 19:31:00 -03:00
Juan Martín Sotuyo Dodero
c6094b945c Actually fix broken links 2017-02-22 19:30:43 -03:00
Juan Martín Sotuyo Dodero
8029e572e1 Merge branch 'broken-links' into pmd/5.5.x 2017-02-22 19:23:45 -03:00
Juan Martín Sotuyo Dodero
d93bbcf0f4 Merge branch 'broken-links' into pmd/5.4.x 2017-02-22 19:23:19 -03:00
Juan Martín Sotuyo Dodero
d94168a891 Fix broken links in best practices page 2017-02-22 19:22:49 -03:00
Juan Martín Sotuyo Dodero
58b863e204 Merge branch 'pr-266' into pmd/5.5.x 2017-02-21 23:20:08 -03:00
Juan Martín Sotuyo Dodero
1bc60dc612 Merge branch 'pr-266' into pmd/5.4.x 2017-02-21 23:18:31 -03:00
Juan Martín Sotuyo Dodero
4d3c09a6e7 Update changelog, refs PR #266 2017-02-21 23:17:49 -03:00
Wayne Earl
227060e5f8 corrected invalid reporting of LoD violation 2017-02-21 23:07:51 -03:00
Juan Martín Sotuyo Dodero
8a909cd619 Merge branch 'pr-268' into pmd/5.5.x 2017-02-21 22:08:27 -03:00
Juan Martín Sotuyo Dodero
5933147366 Update changelog refs #268 2017-02-21 22:00:59 -03:00
Sergey Gorbaty
44ff394f85 Safe escaping via String method 2017-02-21 21:53:14 -03:00
Juan Martín Sotuyo Dodero
50a18a649e Merge branch 'pr-267' into pmd/5.5.x 2017-02-21 20:00:09 -03:00
Juan Martín Sotuyo Dodero
c065b5ce64 Apex and pom are not part of PMD 5.4.x 2017-02-21 19:54:53 -03:00
Juan Martín Sotuyo Dodero
689bee4641 Merge branch 'pr-267' into pmd/5.4.x 2017-02-21 18:44:59 -03:00
Andreas Dangel
acd891175d Verify the supported languages 2017-02-21 18:42:59 -03:00
Andreas Dangel
6a719e193d Add missing project.reporting.outputEncoding property 2017-02-21 18:42:49 -03:00
Andreas Dangel
52965a90b3 Rename integration tests, so that they are actually executed by failsafe
rather than by surefire
2017-02-21 18:42:42 -03:00
Andreas Dangel
d2665bd870 Execute PMD and verify output
Uses apache commons-compress to extract the ZIP file.
2017-02-21 18:42:36 -03:00
Andreas Dangel
9351f13cf2 Add simple test to check zip file content of binary distribution 2017-02-21 18:42:30 -03:00
Andreas Dangel
5a8ddef03b Add failsafe plugin and basic test, to verify the binary
distribution zip file has been created.
2017-02-21 18:42:22 -03:00
Andreas Dangel
9a75c1e9b1 Merge branch 'issue-256' into pmd/5.5.x 2017-02-21 19:43:06 +01:00
Andreas Dangel
f9a0b343a3 Merge branch 'issue-256' into pmd/5.4.x 2017-02-21 19:36:44 +01:00
Andreas Dangel
3dff515de4 Update changelog, fixes #256 2017-02-21 19:36:12 +01:00
Juan Martín Sotuyo Dodero
08075e4171 [core] Fix shortname computation for reltive paths
- Fixes #256
 - When using relative paths, both the file's path and the inputFileName
    are relative, so we can safely compare them directly.
2017-02-21 19:34:56 +01:00
Andreas Dangel
a1299c5b9b Merge branch 'issue-257' into pmd/5.5.x 2017-02-20 16:06:26 +01:00
Andreas Dangel
023f27dcf5 Merge branch 'issue-257' into pmd/5.4.x 2017-02-20 16:02:03 +01:00
Andreas Dangel
1fc7df7f0d Update changelog, fixes #257 2017-02-20 16:01:54 +01:00
Juan Martín Sotuyo Dodero
8f22e69560 Ugly workaround that don't need to change AST 2017-02-20 16:00:39 +01:00
Juan Martín Sotuyo Dodero
907972f0ca [java] Improve grammar for CastExpression
- Provide a definite fix for casts. This allowed to remove a bunch of hacks.
 - I had to change the grammar a bit... `(int)` is now a cast with a
    PrimitiveType as child, not a Type with a nested PrimitiveType. This is due
    to JavaCC completely ignoring whatever you place in the LOOKAHEAD in favor
    of just looking the follow-up expression completely.
 - Removing the hacks raised an issue with expression orders, caused also by JavaCC's
    disregard to LOOKAHEAD contents
2017-02-20 16:00:39 +01:00
Andreas Dangel
820ab22f3b Merge branch 'pr-258' into pmd/5.5.x 2017-02-20 15:42:31 +01:00
Juan Martín Sotuyo Dodero
a5089b27da [java] syboltable resolves inner class methods
- This fixes the last known false negative for `AccessorMethodGeneration`
2017-02-20 15:42:10 +01:00
Juan Martín Sotuyo Dodero
714712ec91 Merge branch 'changelog' into pmd/5.5.x 2017-02-19 19:22:59 -03:00
Juan Martín Sotuyo Dodero
83b98ae4bf Merge branch 'changelog-modifier' into pmd/5.5.x 2017-02-19 19:19:27 -03:00
Juan Martín Sotuyo Dodero
151f796043 Merge branch 'changelog-modifier' into pmd/5.4.x 2017-02-19 19:16:26 -03:00
Juan Martín Sotuyo Dodero
912df6aa0e Add severely modified rules to changelog 2017-02-19 19:15:42 -03:00
Juan Martín Sotuyo Dodero
465478feee Add greatly modified rules to changelog 2017-02-19 19:13:59 -03:00
Andreas Dangel
cdbb6c6893 Merge branch 'issue-251' into pmd/5.5.x 2017-02-19 10:22:01 +01:00
Andreas Dangel
6459aaaa2c Update changelog, fixes #251 2017-02-19 10:21:51 +01:00
Juan Martín Sotuyo Dodero
76d10bfb1d [apex] Fix chained method line count for types
- Fixes #251
 - The abstract parent class was already handling it properly, no need
    to override to visit to a method call.
2017-02-19 10:20:31 +01:00
Juan Martín Sotuyo Dodero
9264fda777 Merge branch 'pr-262' into pmd/5.5.x 2017-02-17 15:54:39 -03:00
Andreas Dangel
282a803a83 Allow annotations for UnnecessaryLocalBeforeReturnRule
- Fixes #933
2017-02-17 15:54:08 -03:00
Andreas Dangel
a92adc4bdf Merge branch 'pr-249' into pmd/5.5.x 2017-02-15 19:58:14 +01:00
Andreas Dangel
654749d18d Merge branch 'pr-249' into pmd/5.4.x 2017-02-15 19:54:06 +01:00
Andreas Dangel
d9e867964c Update changelog
fixes #246
fixes #247
fixes #248
2017-02-15 19:49:40 +01:00
Juan Martín Sotuyo Dodero
756e9a713a Update docs to reflect on changes 2017-02-15 19:47:08 +01:00
Juan Martín Sotuyo Dodero
b4d05e5f14 Checkstyle fixes 2017-02-15 19:47:08 +01:00
Juan Martín Sotuyo Dodero
1fb05d995f [java] Revamp UnusedModifier
- This covers a ton of missing cases
 - Fixes #246
 - Fixes #247
 - Fixes #248
 - Notice `isNested` has been improved on `ASTClassOrInterfaceDeclaration`
    to cover being nested in an annotation definition
2017-02-15 19:47:08 +01:00
Andreas Dangel
71884a40c4 Merge branch 'issue-240' into pmd/5.5.x 2017-02-14 21:59:19 +01:00
Andreas Dangel
805846a07c Update changelog, fixes #240 2017-02-14 21:59:04 +01:00
Juan Martín Sotuyo Dodero
4137df4309 [java] UnnecessaryLocalBeforeReturn checks usages
- We now check symbol table usages to detect violations.
 - We drop the consecutive lines requirement.
 - Resolves #240
2017-02-14 21:57:47 +01:00
Andreas Dangel
e3abbcbdd5 Merge branch 'feature-1496' into pmd/5.5.x 2017-02-13 21:04:33 +01:00
Andreas Dangel
983a0dc9b8 Remove the to be ignored test from the regressionTests 2017-02-13 21:04:12 +01:00
Andreas Dangel
070011c3ae Update changelog with new rule "AccessorMethodGeneration"
References #244
2017-02-13 20:02:21 +01:00
Juan Martín Sotuyo Dodero
e027871f2a [java] Add AccessorMethodGeneration rule
- This resolves #1496
 - There is still an outstanding false negative, which is down to a bug in
    symbol table analysis, I'm leaving that out for the moment, and address it
    on a separate PR.
2017-02-13 19:54:20 +01:00
Andreas Dangel
d426ed7093 Merge branch 'pr-242' into pmd/5.5.x 2017-02-13 19:21:12 +01:00
Juan Martín Sotuyo Dodero
4ee4f5983e [java] Fix classscope references
- A bunch of closely related issues fixed:
   - References to `this`, `super` and `Classname` were very badly resolved
      (pointed to variables, methods, or nothing at all on empty classes)
   - Annotations would not be registered by their parent scopes.
2017-02-13 19:20:31 +01:00
Andreas Dangel
dc07816387 Merge branch 'pr-239' into pmd/5.5.x 2017-02-12 11:03:52 +01:00
Juan Martín Sotuyo Dodero
04a4145b1c [doc] Improve docs on InvalidSlf4jMessageFormatRule 2017-02-12 11:03:36 +01:00
Andreas Dangel
294dd3e6af Merge branch 'issue-232' into pmd/5.5.x 2017-02-12 09:42:26 +01:00
Andreas Dangel
e16ee448da Merge branch 'issue-232' into pmd/5.4.x 2017-02-12 09:37:31 +01:00
Andreas Dangel
fc1e90b7d3 Update changelog, fixes #232 2017-02-12 09:37:19 +01:00
Juan Martín Sotuyo Dodero
ed7714391a [java] Fix FP in SimplifiedTernary with null value
- Fixes #232
 - Alo improve the docs formatting, it's getting garbled on the web..
2017-02-12 09:35:08 +01:00
Andreas Dangel
cc03dc7c46 References #234, #235: Remove classloader closing code of PMD Ant Task
Got lost, when #235 was rebased onto pmd/5.4.x
2017-02-11 17:53:50 +01:00
Andreas Dangel
92b18e78dc Merge branch 'issue-234' into pmd/5.5.x 2017-02-11 17:50:32 +01:00
Andreas Dangel
49c0b20362 Merge branch 'issue-234' into pmd/5.4.x 2017-02-11 17:44:32 +01:00
Andreas Dangel
df23b76442 Update changelog, fixes #234 2017-02-11 17:44:20 +01:00
Juan Martín Sotuyo Dodero
dd103aae56 [core] Fix IOException loading rulesets under concurrency
- Fixes #234
 - When a single JVM runs multiple PMD instances under different threads,
    connections to PMD jars (and streams opened to read standard rulesets)
    are shared, causing race conditions where one thread may cause the other
    to close it's streams. This in tun produces IOExceptions.
 - This happens in Gradle when enabling parallel builds. I believe it can happen
    under Maven with -T1C too, but has not been able to reproduce it.
 - I take the chance to clean up classloader closing code, making it more concise
    and standard accross CLI and Ant.
2017-02-11 17:40:38 +01:00
Andreas Dangel
067c2e9a22 Merge branch 'pr-230' into pmd/5.5.x 2017-02-11 15:29:46 +01:00
Andreas Dangel
88c2557f15 Merge branch 'pr-230' into pmd/5.4.x 2017-02-11 15:25:44 +01:00
Juan Martín Sotuyo Dodero
c5d4951728 [java] Tidy up ClassScope code
- Sibling node search cn be easier
 - Remove dead code in generic resolution
 - Make sure generics resolution goes up through nested classes
2017-02-11 15:25:26 +01:00
Andreas Dangel
030c34d071 Merge branch 'pr-226' into pmd/5.5.x 2017-02-11 15:07:34 +01:00
Juan Martín Sotuyo Dodero
357b10952d [java] Fix same package import from default package
- If the package was passed as an empty string rather than a `null`, we
    would attempt to load classes such as `.Foo` rather than `Foo`.
2017-02-11 15:07:18 +01:00
Andreas Dangel
e25844fb01 Merge branch 'pr-225' into pmd/5.5.x 2017-02-11 10:12:41 +01:00
Juan Martín Sotuyo Dodero
ac2eedf4dd [java] Qualify references to inner classes of imports
- Given an import on `a.Foo`, references to `Foo.Inner` should be qualified
    as `a.Foo.Inner`.
 - This fixes a couple of wrong missing classes.
 - The test also brought to light another issue with resolvers that would fail
    to resolve even a qualified inner class if not explicitly imported under
    certain circumstances.
2017-02-11 10:12:13 +01:00
Andreas Dangel
ac03b2e9d6 Merge branch 'pr-224' into pmd/5.5.x 2017-02-10 23:49:34 +01:00
Juan Martín Sotuyo Dodero
2e64907776 [java] Restrict type searches for inner classes
- There are certain cases where we know exactly what to look for, not needing
    to brute force our way to inner classes. For those, use a direct approach.
2017-02-10 23:49:21 +01:00
Andreas Dangel
cc6cc2c6bc Merge branch 'issue-216' into pmd/5.5.x 2017-02-06 20:13:43 +01:00
Andreas Dangel
50271f2112 Merge branch 'issue-216' into pmd/5.4.x 2017-02-06 20:13:34 +01:00
Andreas Dangel
4d97df19c9 Update changelog, fixes #216 2017-02-06 20:13:25 +01:00
Juan Martín Sotuyo Dodero
03306df325 [doc] [java] Improve docs on NonThreadSafeSingleton 2017-02-06 20:11:30 +01:00
Andreas Dangel
53b4884dc0 Merge branch 'issue-219' into pmd/5.5.x 2017-02-06 20:02:10 +01:00
Andreas Dangel
e45c10431f Merge branch 'issue-219' into pmd/5.4.x 2017-02-06 19:54:46 +01:00
Andreas Dangel
6c75c9160d Update changelog, fixes #219 2017-02-06 19:54:36 +01:00
Juan Martín Sotuyo Dodero
1950aeb001 [java] Fix ClassCastException in UnnecessaryLocalBeforeReturn
- This fixes #219
2017-02-06 19:52:41 +01:00
Andreas Dangel
8ba4335080 Merge branch 'issue-215' into pmd/5.5.x 2017-02-05 17:51:08 +01:00
Andreas Dangel
37cf7d345a Merge branch 'issue-215' into pmd/5.4.x 2017-02-05 17:50:57 +01:00
Andreas Dangel
898dbf0fe3 Update changelog, fixes #215 2017-02-05 17:46:22 +01:00
Juan Martín Sotuyo Dodero
630b92b64e [java] Treat annotation members as public static final
- This fixes #215
 - I created a new method so we didn't change public APIs
2017-02-05 17:44:55 +01:00
Andreas Dangel
9716f66df3 Merge branch 'site-integrations' into pmd/5.5.x 2017-02-03 09:27:29 +01:00
Andreas Dangel
4b6196a8f5 Merge branch 'site-integrations' into pmd/5.4.x 2017-02-03 09:27:20 +01:00
Andreas Dangel
9baf411235 site: integrations - add gradle 2017-02-03 09:26:33 +01:00
Andreas Dangel
e00e974a0a site: sort integrations alphabetically 2017-02-03 09:26:33 +01:00
Juan Martín Sotuyo Dodero
a8c18d99c0 Merge branch 'pr-231' into pmd/5.5.x 2017-02-02 13:13:44 -03:00
Juan Martín Sotuyo Dodero
9118c7ab6a Update changelog 2017-02-02 13:13:19 -03:00
Sergey Gorbaty
d348264170 Removing printing 2017-02-02 13:12:43 -03:00
Sergey Gorbaty
e87fe64a48 Add support for fields 2017-02-02 13:12:33 -03:00
Juan Martín Sotuyo Dodero
cb1556bb41 Merge branch 'pr-229' into pmd/5.5.x 2017-02-02 12:32:44 -03:00
Juan Martín Sotuyo Dodero
27b2f9f547 Update changelog 2017-02-02 12:32:30 -03:00
Sergey
103a745083 Integers won't count as SOQL injection 2017-02-02 12:31:53 -03:00
Juan Martín Sotuyo Dodero
8d420d0387 Merge branch 'pr-228' into pmd/5.5.x 2017-02-02 12:13:48 -03:00
Juan Martín Sotuyo Dodero
467a23cec1 Update changelog 2017-02-02 12:13:24 -03:00
Sergey
52651c0c3f Excluding count from CRUD/FLS checks 2017-02-02 12:12:21 -03:00
Juan Martín Sotuyo Dodero
f9f53db17f Merge branch 'pr-227' into pmd/5.5.x 2017-02-02 11:10:22 -03:00
Juan Martín Sotuyo Dodero
80dcc922f1 Update changelog 2017-02-02 11:10:02 -03:00
Sergey
9240237754 Improving detection of getters 2017-02-02 10:54:27 -03:00
Andreas Dangel
65f159cbc0 Prepare next development version 2017-01-28 15:42:21 +01:00
Andreas Dangel
4dc0699788 [maven-release-plugin] prepare for next development iteration 2017-01-28 14:43:17 +01:00
Andreas Dangel
847ea1c084 [maven-release-plugin] prepare release pmd_releases/5.5.3 2017-01-28 14:43:17 +01:00
Andreas Dangel
9ef035e5eb Prepare pmd release 5.5.3 2017-01-28 14:36:02 +01:00
Andreas Dangel
c74cb3dc33 Merge branch 'pmd/5.4.x' into pmd/5.5.x 2017-01-28 14:25:46 +01:00
Andreas Dangel
ef327a7836 Fix release script 2017-01-28 14:16:51 +01:00
Andreas Dangel
a7fc141ee7 Prepare next development version 2017-01-28 14:01:14 +01:00
Andreas Dangel
e9149551b7 [maven-release-plugin] prepare for next development iteration 2017-01-28 13:15:11 +01:00
Andreas Dangel
12758ef777 [maven-release-plugin] prepare release pmd_releases/5.4.4 2017-01-28 13:15:10 +01:00
Andreas Dangel
3648ca7545 Prepare pmd release 5.4.4 2017-01-28 13:07:35 +01:00
Andreas Dangel
ea0e687140 Update release script to automatically set the default download for sf 2017-01-28 12:57:01 +01:00
Andreas Dangel
c402c0b970 Merge branch 'issue-1495' into pmd/5.5.x 2017-01-28 11:50:43 +01:00
Andreas Dangel
2cce2cc206 Merge branch 'issue-1495' into pmd/5.4.x 2017-01-28 11:46:09 +01:00
Andreas Dangel
6899c63597 Fixes #1495 [java] UnnecessaryLocalBeforeReturn with assert 2017-01-28 11:45:59 +01:00
Andreas Dangel
ebf088693a Merge branch 'issue-1448' into pmd/5.5.x 2017-01-28 10:48:21 +01:00
Andreas Dangel
25f62ae558 Merge branch 'issue-1448' into pmd/5.4.x 2017-01-28 10:43:35 +01:00
Andreas Dangel
7fbb304c8f java: ImmutableFieldRule - use enum 2017-01-28 10:43:17 +01:00
Andreas Dangel
fa3a9b0d66 java: ImmutableFieldRule - take usages inside lambdas into account
Fixes #1448 ImmutableField Rule: Private field in inner class gives false positive[java] ImmutableField: Private field in inner class gives false positive with lambdas
2017-01-28 10:38:49 +01:00
Andreas Dangel
d03239a6cc Merge branch 'pr-214' into pmd/5.5.x
Closes #214 (rebased onto pmd/5.5.x)
2017-01-28 09:48:38 +01:00
Andreas Dangel
40ba746b95 Update changelog, references #214 2017-01-28 09:47:20 +01:00
Sergey
0c351b1917 Caching of results 2017-01-28 09:47:20 +01:00
Sergey
6fa51ec364 Reporting modifier 2017-01-28 09:47:20 +01:00
Juan Martín Sotuyo Dodero
4144174172 Merge branch 'update-pom-desc' into pmd/5.5.x 2017-01-27 18:21:05 -03:00
Juan Martín Sotuyo Dodero
3486f84a49 Merge branch 'update-pom-desc' into pmd/5.4.x 2017-01-27 18:20:36 -03:00
Juan Martín Sotuyo Dodero
2fb2a2529b Update pom
- Simplify / update project description. No HTML, since it's not rendered anywhere.
 - Use my personal email as contact info
2017-01-27 18:19:27 -03:00
Andreas Dangel
46079f19c0 Merge branch 'update-pom' into pmd/5.5.x 2017-01-27 20:39:39 +01:00
Andreas Dangel
d7ae6bb245 Merge branch 'update-pom' into pmd/5.4.x 2017-01-27 20:33:54 +01:00
Andreas Dangel
d32d81f078 Update URLs to issue manager, organization, ci build, mailing lists 2017-01-27 20:33:18 +01:00
Andreas Dangel
1b4cd381b4 Add Juan Martín Sotuyo Dodero as developer 2017-01-27 20:32:11 +01:00
Andreas Dangel
ca3e31fc21 Merge branch 'issue-208' into pmd/5.5.x
Closes #211 (rebased onto pmd/5.4.x)
2017-01-27 20:04:51 +01:00
Andreas Dangel
4032e9ba51 Merge branch 'issue-208' into pmd/5.4.x
Closes #211 (rebased onto pmd/5.4.x)
2017-01-27 20:00:53 +01:00
Andreas Dangel
5081c89763 Update changelog, references #208 2017-01-27 20:00:44 +01:00
Juan Martín Sotuyo Dodero
c53e1790e1 [java] Allow more than 1 annotation in local classes
- This fixes #208
2017-01-27 20:00:08 +01:00
Andreas Dangel
640fad0872 Merge branch 'issue-206' into pmd/5.5.x
Closes #210 (rebased onto pmd/5.4.x)
2017-01-27 19:44:32 +01:00
Andreas Dangel
926d1c3fbc Merge branch 'issue-206' into pmd/5.4.x
Closes #210 (rebased onto pmd/5.4.x)
2017-01-27 19:39:47 +01:00
Andreas Dangel
904223c2e3 Update changelog, references #206 2017-01-27 19:39:39 +01:00
Juan Martín Sotuyo Dodero
455b1c4ded Fix grammar for annotation members
- The lookahead (3 tokens) was too small, and without reaching the opening
    parenthesis assumed it was parsing a method and not a field.
 - Using a larger lookahead solves the issue.
 - Fixes #206
2017-01-27 19:38:48 +01:00
Andreas Dangel
f179eeab5d Merge branch 'issue-207' into pmd/5.5.x
Closes #209 (rebased onto pmd/5.4.x)
2017-01-27 19:20:16 +01:00
Andreas Dangel
aff9fc90ef Merge branch 'issue-207' into pmd/5.4.x
Closes #209 (rebased onto pmd/5.4.x)
2017-01-27 19:12:03 +01:00
Andreas Dangel
78e31f7cbf Update changelog, references #207 2017-01-27 19:11:53 +01:00
Juan Martín Sotuyo Dodero
33fd84d521 [java] Support generics in method references
- Fixes #207
 - Extend the Java grammar to support generics in
    method references: `Type::<Generic>method`
2017-01-27 19:10:42 +01:00
Andreas Dangel
e0ecc2f27c Merge branch 'issue-202' into pmd/5.5.x
Closes #205 (rebased onto pmd/5.4.x)
2017-01-27 17:37:55 +01:00
Andreas Dangel
c63347508e Merge branch 'issue-202' into pmd/5.4.x
Closes #205 (rebased onto pmd/5.4.x)
2017-01-27 17:31:53 +01:00
Andreas Dangel
e45da2b427 Update changelog 2017-01-27 17:31:18 +01:00
Juan Martín Sotuyo Dodero
47137e3789 Improve docs on ConsecutiveAppendsShouldReuse
- This should help with people having doubts for this rule such as #202
    and http://stackoverflow.com/questions/37672785/how-can-i-improve-performance-if-append-is-called-on-stringbuffer-or-stringb
 - Fixes #202
2017-01-27 17:30:13 +01:00
Andreas Dangel
fbb305bd17 Merge branch 'issue-199' into pmd/5.5.x
Closes #203 (rebased onto pmd/5.4.x)
2017-01-27 17:00:33 +01:00
Andreas Dangel
07887ede1d Merge branch 'issue-199' into pmd/5.4.x
Closes #203 (rebased onto pmd/5.4.x)
2017-01-27 16:45:28 +01:00
Andreas Dangel
6b1d00639a Update changelog 2017-01-27 16:44:12 +01:00
Juan Martín Sotuyo Dodero
420c6d45a3 Fixes #199 - False positives with ternary operator
- I deected a couple of extra related issues with ternary operators which are now fixed.
2017-01-27 16:42:24 +01:00
Andreas Dangel
dcf5841e15 Merge branch 'issue-213' into pmd/5.5.x
Fixes #213
Closes #198 (rebased onto pmd/5.4.x)
2017-01-27 12:10:53 +01:00
Andreas Dangel
470bbb3c65 Merge branch 'issue-213' into pmd/5.4.x
Fixes #213
Closes #198 (rebased onto pmd/5.4.x)
2017-01-27 12:04:18 +01:00
Andreas Dangel
472e9a9f55 Update changelog 2017-01-27 12:03:24 +01:00
Juan Martín Sotuyo Dodero
c2d22a1bdf Make Mark's code snippet lazy
- This greatly reduces the memory footprint during analysis,
    addressing part of the issues raised ay #185
 - Rendering is still done to a single String which is then either printed
    to STDOUT or a file, this stiill needs refactoring.
2017-01-27 12:01:46 +01:00
Andreas Dangel
ac17e2d491 Merge branch 'issue-185' into pmd/5.5.x
Closes #196 (rebased onto pmd/5.5.x)
2017-01-27 11:33:09 +01:00
Andreas Dangel
f08639a931 Update changelog 2017-01-27 11:32:51 +01:00
Juan Martín Sotuyo Dodero
36fcdd252c Fix NPE error in CPD reported under #185 2017-01-27 11:26:51 +01:00
Juan Martín Sotuyo Dodero
6267822b6a Merge branch 'pr-204' into pmd/5.5.x 2017-01-24 14:34:33 -03:00
Juan Martín Sotuyo Dodero
58b8ad0eae Update changelog 2017-01-24 14:28:06 -03:00
Sergey Gorbaty
e95d1ef372 Adding a test 2017-01-24 14:27:35 -03:00
Sergey Gorbaty
3079ce26a8 Bug fix 2017-01-24 14:27:29 -03:00
Andreas Dangel
1defa8bc80 Merge branch 'pr-190' into pmd/5.5.x
Closes #190 (rebased onto pmd/5.4.x)
2017-01-22 19:50:03 +01:00
Andreas Dangel
9d0a6b7f4b Merge branch 'pr-190' into pmd/5.4.x
Closes #190 (rebased onto pmd/5.4.x)
2017-01-22 19:24:59 +01:00
Andreas Dangel
8201ba0a06 Update changelog 2017-01-22 19:24:48 +01:00
Juan Martín Sotuyo Dodero
3caa71b94b Resolve #180 - refactor pmd processors
- SourceCodeProcessor now consistently calls rule sets start / end
    if cache is not up to date
 - Both Mono and MultiThread Processors rely on PmdRunnable, just using
    different execution strategies
 - This also fixes https://sourceforge.net/p/pmd/bugs/1511/
2017-01-22 19:19:21 +01:00
Andreas Dangel
fa58ea5111 Merge remote-tracking branch 'origin/pmd/5.5.x' into pmd/5.5.x 2017-01-21 15:40:24 +01:00
Andreas Dangel
c4ce057709 Merge remote-tracking branch 'origin/pmd/5.4.x' into pmd/5.4.x 2017-01-21 15:35:37 +01:00
Andreas Dangel
12f2431bb4 Fix build 2017-01-21 13:43:04 +01:00
Andreas Dangel
620fed2732 Merge branch 'unit-test-for-pr-170' into pmd/5.5.x 2017-01-21 12:13:47 +01:00
Andreas Dangel
96a4b7dc4e Merge branch 'unit-test-for-pr-170' into pmd/5.4.x 2017-01-21 11:59:21 +01:00
Andreas Dangel
ba260e753c Adjust unit test to verify console encoding of XML formatter 2017-01-21 11:58:59 +01:00
Andreas Dangel
4c1890d56c Add unit test to verify encoding of XML formatter 2017-01-21 11:58:59 +01:00
Juan Martín Sotuyo Dodero
40abb62df5 Update changelog 2017-01-20 09:54:10 -03:00
Juan Martín Sotuyo Dodero
cc5ce5cdf9 Update changelog 2017-01-20 09:53:08 -03:00
Juan Martín Sotuyo Dodero
2065d36bc2 Merge branch 'pr-200' into pmd/5.5.x 2017-01-20 09:19:55 -03:00
Juan Martín Sotuyo Dodero
216e10637f Merge branch 'pr-200' into pmd/5.4.x 2017-01-20 09:16:54 -03:00
Juan Martín Sotuyo Dodero
525542c9fa Checkstyle fixes 2017-01-20 09:12:22 -03:00
Maikel Steneker
1681b05222 Added test case for template strings in Ecmascript. 2017-01-20 09:11:45 -03:00
Bram Stappers
f801b30e70 Added template string token to EcmaScript 5 language definition. 2017-01-20 09:11:36 -03:00
Andreas Dangel
98b9a47ec6 Merge branch 'changelog-for-1556' into pmd/5.5.x 2017-01-20 11:03:02 +01:00
Andreas Dangel
ea19f8acee Merge branch 'changelog-for-1556' into pmd/5.4.x 2017-01-20 11:02:52 +01:00
Andreas Dangel
f669c6c253 Update changelog 2017-01-20 11:01:32 +01:00
Juan Martín Sotuyo Dodero
92f7d35bed Merge branch 'pr-192' into pmd/5.5.x 2017-01-16 18:26:24 -03:00
Juan Martín Sotuyo Dodero
291698cdbc Update changelog 2017-01-16 18:26:10 -03:00
Sergey
ba325eb8a2 Dead code removal 2017-01-16 18:25:33 -03:00
Juan Martín Sotuyo Dodero
78fab2e826 Merge branch 'pr-191' into pmd/5.5.x 2017-01-16 17:38:03 -03:00
Juan Martín Sotuyo Dodero
549274f852 Update changelog 2017-01-16 17:36:59 -03:00
Sergey
1bbd10f01b Detection of sharing violation when Database. methods are used 2017-01-16 17:36:20 -03:00
Juan Martín Sotuyo Dodero
2217341d05 Update changelog 2017-01-16 15:38:25 -03:00
Juan Martín Sotuyo Dodero
741e11d80f Merge branch 'pr-189' into pmd/5.5.x 2017-01-16 15:23:51 -03:00
Sergey
fb25329e0d Bug fix to improve detection of concatenated vars 2017-01-16 15:23:26 -03:00
Sergey
7e83147a61 Unit test bug 2017-01-16 15:02:43 -03:00
Juan Martín Sotuyo Dodero
9631680e80 Merge branch 'groovy-typo' into pmd/5.5.x 2017-01-16 14:49:38 -03:00
Juan Martín Sotuyo Dodero
15336017ef Fix typo in PMD-Groovy's pom 2017-01-16 14:49:18 -03:00
Andreas Dangel
a21510ecf3 Merge branch 'pr-188' into pmd/5.5.x
Closes #188 (rebased onto pmd/5.5.x)
2017-01-15 19:40:57 +01:00
Andreas Dangel
2fdfa26e4c Update changelog 2017-01-15 19:24:02 +01:00
Juan Martín Sotuyo Dodero
80b2792db5 Fix #183 - Count whole expressions as 1 line
- This is consistent with how we count "lines" in other languages.
 - Notice we are not actually counting lines, so multiline expressions are
    counted as 1.
 - Having multiple variable declarations together is still counting 1 per variable.
2017-01-15 18:33:06 +01:00
Juan Martín Sotuyo Dodero
4055a79e4c Update changelog 2017-01-12 22:35:09 -03:00
Juan Martín Sotuyo Dodero
16b9d566f3 Merge branch 'pr-184' into pmd/5.5.x 2017-01-12 22:35:05 -03:00
Sergey
79121c42cc Comment to warn future folks to check Apex compiler implementation first 2017-01-12 22:28:45 -03:00
Sergey Gorbaty
edabb22f37 Improving detection for assignment operator 2017-01-12 22:28:45 -03:00
Sergey Gorbaty
a38526544a Improving open redirect detection for static fields 2017-01-12 22:28:45 -03:00
Juan Martín Sotuyo Dodero
174ffa9461 Update changelog 2017-01-12 22:03:34 -03:00
Juan Martín Sotuyo Dodero
9b0839a46c Merge branch 'pr-181' into pmd/5.5.x 2017-01-12 21:38:21 -03:00
Sergey
608c9139be Bug fix #3 for else statements 2017-01-12 21:32:07 -03:00
Sergey
9db4b2503d Bug fixes part 2 2017-01-12 21:32:07 -03:00
Sergey
9d384f404c Bug fixes 2017-01-12 21:32:07 -03:00
Sergey Gorbaty
7a3ab3d7a1 Accessibility checks improved with CF 2017-01-12 21:31:31 -03:00
Sergey Gorbaty
9baf99f19d CF based CRUD rule checking 2017-01-12 21:31:31 -03:00
Juan Martín Sotuyo Dodero
64f8fbcf26 Merge branch 'formatter-docs' into pmd/5.5.x 2017-01-10 11:09:14 -03:00
Juan Martín Sotuyo Dodero
ad32501f36 Merge branch 'formatter-docs' into pmd/5.4.x 2017-01-10 11:07:57 -03:00
Juan Martín Sotuyo Dodero
c8b38c83ca Update changelog 2017-01-10 11:07:32 -03:00
Juan Martín Sotuyo Dodero
bbba3aa608 Add documentation on formatter encoding 2017-01-10 10:50:14 -03:00
Juan Martín Sotuyo Dodero
1cfbdc9268 Merge branch 'pr-170' into pmd/5.5.x 2017-01-10 10:06:37 -03:00
Juan Martín Sotuyo Dodero
60c329b07a Merge branch 'pr-170' into pmd/5.4.x 2017-01-10 10:05:23 -03:00
pyxide
43a38d3144 Console encoding only when interactive 2017-01-10 09:54:44 -03:00
pyxide
d7c503bee4 checkstyle fixes 2017-01-10 09:54:44 -03:00
pyxide
958f8df5f5 Reflection detection code for console encoding
Note: calling the static native method `String Console.encoding()` returns the current console encoding, even if `System.console()` is null because the console is not interactive (pipe or redirection).
2017-01-10 09:54:44 -03:00
pyxide
89600bfcc4 checkstyle fixes 2017-01-10 09:54:44 -03:00
pyxide
abf65acb63 Bug fix and enhanced console output encoding
- due to some rewriting without testing, the encoding property was not added to the renderer properties.
- better console encoding: use system property `sun.stdout.encoding` in interactive console, and `file.encoding` in piped or redirected output
2017-01-10 09:54:44 -03:00
pyxide
4c71b0da4a checkstyle fixes 2017-01-10 09:54:44 -03:00
pyxide
368313fd8f Update Formatter.java 2017-01-10 09:54:44 -03:00
pyxide
74583d003a Ant Task Formatter encoding issue with XMLRenderer
Hi,

The writers in the Ant task's formatter uses the default platform's encoding (for instance cp1252 on Western Windows) and the XMLRenderer sets the default XML encoding to UTF-8. This may lead to incorrect XML encoding, detected for instance when the XML file is sent to a XSLT task.
This goes undetected as long as the characters in the XML file are in the ASCII subset, which is frequently the case with code, usually in plain Latin language. In my case, the issue was raised because of the localized formatting of some line numbers greater than 999, due to localized thousand separator 0xA0, which is out of the ASCII subset.

I modified the Formatter class to always use a charset for writers. When no encoding is specified, UTF-8 is used instead of the default platform's encoding.

I strongly recommend to *always set the encoding parameter* of the formatter element. It should be reflected as so in the Ant Task documentation.

```xml
<pmd encoding="cp1252"> <!-- source encoding -->
  <formatter type="xml" toFile="pmd.xml">
    <param name="encoding" value="UTF-8" /> <!-- report encoding -->
  </formatter>
  <fileset dir="src/main/java">
    <include name="**/*.java"/>
  </fileset>
</pmd>
```
Note: when digging into sourceforge issues for similar bugs, I found [Bug 877: Output with encoding CP1252](https://sourceforge.net/p/pmd/bugs/877/) . Not the same task, but the same symptoms, probably the same cause ?
2017-01-10 09:54:44 -03:00
Andreas Dangel
923aab8065 Merge branch 'bug-1556' into pmd/5.5.x 2017-01-08 13:58:13 +01:00
Andreas Dangel
b9e5901b12 Merge branch 'bug-1556' into pmd/5.4.x 2017-01-08 13:52:25 +01:00
Andreas Dangel
c0e1c3e731 Slightly improve performance of XPath Rule UseLocaleWithCaseConversions 2017-01-08 13:51:44 +01:00
Andreas Dangel
af3ad2bc02 Fixes #1556 [java] UseLocaleWithCaseConversions does not works with ResultSet (false negative) 2017-01-08 12:12:56 +01:00
Juan Martín Sotuyo Dodero
6f6d37b2a1 Update changelog 2017-01-07 22:22:07 -03:00
Sergey
03a5aa2519 Legacy test class declaration 2017-01-07 22:21:33 -03:00
Juan Martín Sotuyo Dodero
0be5a1554c Update changelog 2017-01-07 22:01:28 -03:00
Sergey
9c85a78884 Improving open redirect detection for strings prefixed with / 2017-01-07 22:00:48 -03:00
Andreas Dangel
c9514e563a Merge branch 'bug-177' into pmd/5.5.x
Fixes #177
2017-01-06 10:35:45 +01:00
Andreas Dangel
f825cdb1db Merge branch 'bug-177' into pmd/5.4.x
Fixes #177
2017-01-06 10:17:34 +01:00
Andreas Dangel
af9d78c01a Update changelog 2017-01-06 10:16:45 +01:00
Andreas Dangel
767c9aae79 Bugfix singular field + lambda 2017-01-06 10:07:19 +01:00
Andreas Dangel
c794d952b1 Merge branch 'pr-175' into pmd/5.5.x
Closes #175 (rebased onto pmd/5.5.x)
2017-01-04 20:18:40 +01:00
Andreas Dangel
04cefcbe06 GC and thread safety changes
(Re-applied from 10e3bc172bd7a2b97b2a98fcf423a3232d3bdd25)
2017-01-04 20:18:21 +01:00
Andreas Dangel
2566bbaf2e apex: Take over rule descriptions from changelog for security ruleset 2017-01-04 20:06:36 +01:00
Sergey
6ea28811f4 Small edits to release notes 2017-01-04 19:56:25 +01:00
Andreas Dangel
2b8f1c559b Update changelog 2017-01-04 19:54:41 +01:00
Sergey
5e07095f0c Bug fix for missing casting methods 2017-01-04 19:52:06 +01:00
Andreas Dangel
dfc0467524 Merge branch 'pr-164' into pmd/5.5.x
Closes #164 (rebased onto pmd/5.5.x)
2017-01-03 12:17:34 +01:00
Andreas Dangel
a499711990 Fix compile error 2017-01-03 12:12:11 +01:00
Juan Martín Sotuyo Dodero
932ad7dd2b Reduce memory allocations during symbol table 2017-01-03 12:07:30 +01:00
Andreas Dangel
992e5547bb Merge branch 'pr-162' into pmd/5.5.x
Closes #162 (rebased onto pmd/5.4.x)
2017-01-03 11:45:47 +01:00
Andreas Dangel
ba7a7a2f8d Merge branch 'pr-162' into pmd/5.4.x
Closes #162 (rebased onto pmd/5.4.x)
2017-01-03 11:45:28 +01:00
Juan Martín Sotuyo Dodero
6283316e51 Avoid redundant method calls and improve codebase
- Avoid making calls within for loops, specially costly ones
    such as `getQualifiedTypeNames`
 - Don't create lists when they are empty.
 - Create lists of proper size to avoid resizing / oversizing
 - I'm seeing a ~5% improvement. We are reaching the point were noise
    makes it hard to detect improvements. We should attack GC cycles soon.
2017-01-03 11:41:33 +01:00
Andreas Dangel
72af8a8ee5 Merge branch 'pr-161' into pmd/5.5.x
Closes #161 (rebased onto pmd/5.5.x)
2017-01-03 11:28:31 +01:00
Juan Martín Sotuyo Dodero
b950929b7c Improve symboltable codebase
- Move shared code to pmd-core
 - Allow search methods to stop searching when they want to
 - If we are looking for a variable declaration, just search among those and not all name declarations
 - This is roughtly another 10% improvement on symbol table performance
2017-01-03 11:22:42 +01:00
Juan Martín Sotuyo Dodero
b6bc06d3d2 Avoid comparing strings all time 2017-01-03 11:21:13 +01:00
Andreas Dangel
55b4d81fbf Merge branch 'pr-159' into pmd/5.5.x
Closes #159 (rebased onto pmd/5.4.x)
2017-01-03 10:27:39 +01:00
Andreas Dangel
e5dbeb800b Merge branch 'pr-159' into pmd/5.4.x
Closes #159 (rebased onto pmd/5.4.x)
2017-01-03 10:21:50 +01:00
Andreas Dangel
c6afa6ca26 Update changelog 2017-01-03 10:21:33 +01:00
Juan Martín Sotuyo Dodero
54db0ffbd9 [java] UnnecessaryFullyQualifiedNameRule handles same file class conflicts
- This resolves [#1555](https://sourceforge.net/p/pmd/bugs/1555/)
 - If a class is defined in the same file that conflicts with an import,
    it's not considered a violation
2017-01-03 10:18:29 +01:00
Juan Martín Sotuyo Dodero
1a10813126 Update changelog 2017-01-02 15:39:58 -03:00
Juan Martín Sotuyo Dodero
56324071a9 Merge branch 'pr-173' into pmd/5.5.x 2017-01-02 15:28:28 -03:00
Juan Martín Sotuyo Dodero
b937ebd80f Add new rule to release 2017-01-02 15:28:11 -03:00
Sergey
9aae5a191b New rule suggests using named credentials 2017-01-02 15:14:05 -03:00
Juan Martín Sotuyo Dodero
1f569c49f9 Update changelog 2017-01-02 14:46:47 -03:00
Juan Martín Sotuyo Dodero
4bffb8b856 Merge branch 'pr-172' into pmd/5.5.x 2017-01-02 14:44:19 -03:00
Sergey
7d691e6c69 Adding support for property 2017-01-02 14:29:12 -03:00
Juan Martín Sotuyo Dodero
1c2a7f70ce Update changelog 2016-12-21 08:53:26 -03:00
Juan Martín Sotuyo Dodero
ac0dcf235e Merge branch 'pr-169' into pmd/5.5.x 2016-12-21 08:52:56 -03:00
Juan Martín Sotuyo Dodero
5c6f808a45 Rename variable to match Checkstyle config 2016-12-21 08:52:18 -03:00
Sergey
01bb78b974 Improving detection for DML with inline new object 2016-12-21 08:40:00 -03:00
Juan Martín Sotuyo Dodero
b409729028 Update changelog 2016-12-16 16:39:16 -03:00
Juan Martín Sotuyo Dodero
fa15016e5d Merge branch 'pr-167' into pmd/5.5.x 2016-12-16 16:38:43 -03:00
Sergey
6bf31ece84 GC and thread safety changes 2016-12-16 16:24:33 -03:00
Juan Martín Sotuyo Dodero
06733400d2 Update changelog 2016-12-16 15:57:51 -03:00
Juan Martín Sotuyo Dodero
e9a40fbe43 Merge branch 'pr-165' into pmd/5.5.x 2016-12-16 15:55:23 -03:00
Sergey Gorbaty
5e2db6c42b Removing static 2016-12-16 15:46:22 -03:00
Sergey Gorbaty
5f908a306d Clearing data collection 2016-12-16 15:46:12 -03:00
Sergey Gorbaty
64e193fcb6 Bug fix - contd 2016-12-16 15:46:04 -03:00
Sergey Gorbaty
27936a5e04 Improving open redirect rule to avoid test classes/methods 2016-12-16 15:45:53 -03:00
Juan Martín Sotuyo Dodero
a70ad2ad90 Merge branch 'fix-pr-163' into pmd/5.5.x 2016-12-14 18:13:46 -03:00
Juan Martín Sotuyo Dodero
6c8f3489f8 Avoid shared rule state 2016-12-14 18:13:24 -03:00
Juan Martín Sotuyo Dodero
265730d548 Update changelog 2016-12-14 17:38:11 -03:00
Juan Martín Sotuyo Dodero
5c5050e198 Merge branch 'pr-163' into pmd/5.5.x 2016-12-14 17:36:05 -03:00
Sergey Gorbaty
251a4254c7 Clearing collection after detection 2016-12-14 17:32:58 -03:00
Sergey
f2eb813419 Finetuning of regex 2016-12-14 17:32:52 -03:00
Sergey
1d5e0e5304 Flagging of System.debug 2016-12-14 17:32:46 -03:00
Juan Martín Sotuyo Dodero
94a42c9c16 Merge branch 'changelog-5.5.x' into pmd/5.5.x 2016-12-13 13:37:03 -03:00
Juan Martín Sotuyo Dodero
e36ebe90ae Revamp changelog 2016-12-13 13:36:28 -03:00
Juan Martín Sotuyo Dodero
66b6b8df19 Merge branch 'changelog' into pmd/5.4.x 2016-12-13 13:26:42 -03:00
Juan Martín Sotuyo Dodero
454fddb09d Revamp changelog format
- Make it a little more marketing friendly
2016-12-13 13:25:01 -03:00
Juan Martín Sotuyo Dodero
5946d609e3 Merge branch 'pr-160' into pmd/5.5.x 2016-12-13 10:05:26 -03:00
Juan Martín Sotuyo Dodero
2aacbca341 Add ApexDangerousMethods to releases/553.xml 2016-12-13 10:04:33 -03:00
Juan Martín Sotuyo Dodero
98d24e6d44 Update changelog 2016-12-13 10:02:59 -03:00
Sergey
8864936c1b Adding to the rule chain 2016-12-13 10:01:33 -03:00
Sergey
d1acba8fc9 Code style changes 2016-12-13 10:01:24 -03:00
Sergey
19bdf1419f Rule check-in 2016-12-13 10:01:16 -03:00
Juan Martín Sotuyo Dodero
2378e6f8d2 Merge branch 'pr-158' into pmd/5.5.x 2016-12-10 18:18:24 -03:00
Juan Martín Sotuyo Dodero
a201427727 Update changelog 2016-12-10 18:17:58 -03:00
Sergey Gorbaty
5f79c56bc5 Moving Pattern 2016-12-10 18:11:48 -03:00
Sergey Gorbaty
f9882bec87 Improving getter detection 2016-12-10 18:11:41 -03:00
Andreas Dangel
5ded17c5b5 Merge branch 'pr-141' into pmd/5.5.x
Closes #141 (rebased for pmd/5.4.x)
2016-12-10 10:20:39 +01:00
Andreas Dangel
a7b89a8c47 Merge branch 'pr-141' into pmd/5.4.x
Closes #141 (rebased for pmd/5.4.x)
2016-12-10 10:15:45 +01:00
Andreas Dangel
48e803392a Update changelog 2016-12-10 10:14:00 +01:00
Juan Martín Sotuyo Dodero
28a24dec2a [java] Speedup PreserveStackTrace by over 7X
- By avoiding to look at all variable declarators we can greatly improve
    analysis speed without loosing accurancy
2016-12-10 10:13:37 +01:00
Andreas Dangel
bb8b604152 Merge branch 'pr-140' into pmd/5.5.x
Closes #140 (rebased onto pmd/5.4.x)
2016-12-09 09:50:36 +01:00
Andreas Dangel
637b82bce9 Merge branch 'pr-140' into pmd/5.4.x
Closes #140 (rebased onto pmd/5.4.x)
2016-12-09 09:49:17 +01:00
Andreas Dangel
a250974b29 Update changelog 2016-12-09 09:45:25 +01:00
Juan Martín Sotuyo Dodero
f4e727d274 [java] Make CloneMethodMustImplementCloneable over 500x faster
- This was an excruciatingly slow rule, the slowest by far of all PMD
 - We speed it up by:
    * checking early if we are analyzing a `clone()` method to cut the AST tree
    * making better use of type information available
    * only performing additional checks when we know we can't rely on
       available type information
2016-12-09 09:44:23 +01:00
Juan Martín Sotuyo Dodero
76738d6d8f Merge branch 'pr-155' into pmd/5.5.x 2016-12-08 19:26:27 -03:00
Juan Martín Sotuyo Dodero
a854dae229 Fix checkstyle violations 2016-12-08 19:25:38 -03:00
Sergey Gorbaty
920a58a043 Code style fixes 2016-12-08 19:17:08 -03:00
Sergey Gorbaty
f9f4a7f1a1 Refactoring other rules for FQvariableName 2016-12-08 19:16:31 -03:00
Sergey Gorbaty
06ef5abf9e Refactoring of variable name collection 2016-12-08 19:12:32 -03:00
Sergey Gorbaty
2d10c55e3f Bug fix that addresses recognition of object member variable as a variable of class 2016-12-08 19:10:59 -03:00
Juan Martín Sotuyo Dodero
aa7a1f42f5 Merge branch 'pr-154' into pmd/5.5.x 2016-12-07 14:32:30 -03:00
Juan Martín Sotuyo Dodero
795d437cd4 Merge branch 'pr-154' into pmd/5.4.x 2016-12-07 14:28:06 -03:00
Juan Martín Sotuyo Dodero
2fbe0b977a Update changelog 2016-12-07 14:26:58 -03:00
Sebastian Ratz
61e0fc5875 [java] Fix #1547: UnusedImports: Adjust regex to support underscores 2016-12-07 14:14:07 -03:00
Juan Martín Sotuyo Dodero
f20a90bc3f Merge branch 'pr-152' into pmd/5.5.x 2016-12-07 13:27:10 -03:00
Juan Martín Sotuyo Dodero
68546d1907 Merge branch 'pr-152' into pmd/5.4.x 2016-12-07 13:24:21 -03:00
Juan Martín Sotuyo Dodero
6096bb9c98 Update changelog 2016-12-07 13:17:59 -03:00
Felix Otto
9f1f63ffe6 fixes #1552 [java] continue does not require break
Similar to RETURN after a CONTINUE statement break is not required in a
case section
2016-12-07 13:10:23 -03:00
Andreas Dangel
220a1f98a8 Update releases/553.xml ruleset 2016-12-03 19:08:34 +01:00
Andreas Dangel
e9ba846b86 Merge branch 'pr-138' into pmd/5.5.x 2016-12-03 19:06:17 +01:00
Andreas Dangel
9199e46b93 Update changelog 2016-12-03 19:00:38 +01:00
Juan Martín Sotuyo Dodero
c296560921 Make ClasspathClassLoader parallel capable
- It's just a bunch of static methods with no state on a URLClassLoader
 - We should probably review if this class makes sense at all, or should
    be replaced with helper methods on top of PMDASMClassLoader
2016-12-03 19:00:32 +01:00
Andreas Dangel
d231e1e407 Merge branch 'issue-1551' into pmd/5.5.x 2016-12-03 18:13:21 +01:00
Andreas Dangel
4c5daadca7 Fixes #1551 [java] InvalidSlf4jMessageFormat: fails with NPE 2016-12-03 18:13:13 +01:00
Andreas Dangel
412bf2a748 Merge branch 'issue-1541' into pmd/5.5.x 2016-12-03 17:52:22 +01:00
Andreas Dangel
9afebbea18 Fixes #1541 [java] InvalidSlf4jMessageFormat: False positive with placeholder and exception 2016-12-03 17:52:10 +01:00
Juan Martín Sotuyo Dodero
048fc32aa0 Merge branch 'pr-148' into pmd/5.5.x 2016-12-02 17:15:01 -03:00
Juan Martín Sotuyo Dodero
41cc401cd0 Update changelog 2016-12-02 17:13:35 -03:00
Sergey Gorbaty
4edc552692 Improving detection of SOQL injection with variables flowing into Database.query 2016-12-02 17:12:05 -03:00
Juan Martín Sotuyo Dodero
70a02275fd Merge branch 'pr-149' into pmd/5.5.x 2016-12-02 16:49:36 -03:00
Juan Martín Sotuyo Dodero
2260c01410 Update changelog 2016-12-02 16:49:18 -03:00
Sergey Gorbaty
8719fbdd0e Whitelisting String.isEmpty
Improved detection of casting and additional test cases
Typo fix
2016-12-02 16:43:48 -03:00
Juan Martín Sotuyo Dodero
315ebb9502 Merge branch 'pr-147' into pmd/5.5.x 2016-12-01 19:40:57 -03:00
Juan Martín Sotuyo Dodero
04346b6240 Update changelog 2016-12-01 19:40:40 -03:00
Sergey
7112e0530e NPE bug fix 2016-12-01 19:35:54 -03:00
Sergey
ba1222083d Adding detection nested binary expressions 2016-12-01 19:35:47 -03:00
Sergey
863b2ff40e Detection of XSS in method return statement 2016-12-01 19:35:39 -03:00
Juan Martín Sotuyo Dodero
0df1273a2c Merge branch 'pr-146' into pmd/5.5.x 2016-12-01 19:04:41 -03:00
Juan Martín Sotuyo Dodero
1b63611f22 Update changelog 2016-12-01 19:03:18 -03:00
Sergey
82986620e4 Adding proper list support to SOQL queries 2016-12-01 18:54:55 -03:00
Sergey
d3edce7718 Updating description of the finding 2016-12-01 18:54:45 -03:00
Sergey
7f63914846 Bug fix 2016-12-01 18:53:48 -03:00
Sergey
1e5cbb8d25 Adding support for accessibility detection, fixing bugs with detection of fall-through checks 2016-12-01 18:53:33 -03:00
Sergey
074bab99b8 Adding CRUD to codeclimate ruleset 2016-12-01 18:53:25 -03:00
Sergey
20c2fa19f5 Adding support for properties and additional methods 2016-12-01 18:49:03 -03:00
Sergey
79737224b0 Adding Apex CRUD violations 2016-12-01 18:48:51 -03:00
Juan Martín Sotuyo Dodero
08c0e99e1c Merge branch 'pr-137' into pmd/5.5.x 2016-11-29 15:09:24 -03:00
Juan Martín Sotuyo Dodero
fab752ebe2 Update changelog 2016-11-29 15:06:07 -03:00
Robert Sösemann
b7cd4b6533 Adjusted remediation points 2016-11-29 15:01:19 -03:00
Andreas Dangel
dcd0cfb3db Merge branch 'issue-1545' into pmd/5.5.x 2016-11-26 20:01:38 +01:00
Juan Martín Sotuyo Dodero
2b14242f6b Update changelog 2016-11-26 19:54:52 +01:00
Juan Martín Sotuyo Dodero
268c62e772 Symbol table can now handle inner classes
- Types are now attempted to be resolved as inner classes if public attempt fails
 - ClassScope offers a `resolveType` method that qualifies the name as per local rules
    before resolution
2016-11-26 19:53:53 +01:00
Andreas Dangel
ef98657965 Merge branch 'issue-1546' into pmd/5.5.x 2016-11-26 18:20:43 +01:00
Andreas Dangel
6a75353da3 Merge branch 'issue-1546' into pmd/5.4.x 2016-11-26 18:16:04 +01:00
Juan Martín Sotuyo Dodero
9460758e69 Update changelog 2016-11-26 18:14:27 +01:00
Juan Martín Sotuyo Dodero
7e3546c130 UnnecessaryFullyQualifiedName can detect conflicts
- Fixes https://sourceforge.net/p/pmd/bugs/1546/
2016-11-26 18:13:10 +01:00
Andreas Dangel
987ba1931c Merge branch 'pr-130' into pmd/5.5.x 2016-11-26 17:15:58 +01:00
Andreas Dangel
a5d7df9929 Merge branch 'pr-130' into pmd/5.4.x 2016-11-26 17:08:05 +01:00
Juan Martín Sotuyo Dodero
1b5135f360 Update changelog 2016-11-26 17:07:31 +01:00
Juan Martín Sotuyo Dodero
eca1f7c8ef Remove synchronization from RuleContext 2016-11-26 17:07:05 +01:00
Juan Martín Sotuyo Dodero
87f26e57e7 Use a LRU cache in SaxonXPathRuleQuery 2016-11-26 17:07:05 +01:00
Juan Martín Sotuyo Dodero
49e3de4a06 Allow concurrency in AttributeAxisIterator 2016-11-26 17:03:32 +01:00
Andreas Dangel
390cbd1ffc Merge branch 'pr-128' into pmd/5.5.x 2016-11-26 11:10:13 +01:00
Andreas Dangel
68b41d3bc9 Merge branch 'pr-128' into pmd/5.4.x 2016-11-26 11:06:02 +01:00
Juan Martín Sotuyo Dodero
b5ca7baa9a Ensure className is never null 2016-11-26 11:04:29 +01:00
Juan Martín Sotuyo Dodero
810760e3a6 Update changelog 2016-11-26 11:04:29 +01:00
Juan Martín Sotuyo Dodero
19a8d0d060 Minor optimizations to type resolution 2016-11-26 11:04:00 +01:00
Andreas Dangel
1f467a9165 Merge branch 'pr-127' into pmd/5.5.x 2016-11-26 10:35:12 +01:00
Andreas Dangel
d395ddca53 Merge branch 'pr-127' into pmd/5.4.x 2016-11-26 10:30:35 +01:00
Andreas Dangel
716b628062 Update changelog 2016-11-26 10:30:01 +01:00
Juan Martín Sotuyo Dodero
95101fddaf Don't look twice for the same variables
- This reduces calls to all scope resolution methods
2016-11-26 10:29:02 +01:00
Juan Martín Sotuyo Dodero
9348d86eeb Merge branch 'pr-129' into pmd/5.5.x 2016-11-22 14:05:03 -03:00
Juan Martín Sotuyo Dodero
cd5dcd335d Merge branch 'pr-129' into pmd/5.4.x 2016-11-22 14:03:38 -03:00
Juan Martín Sotuyo Dodero
c88c1a02d4 Update changelog 2016-11-22 14:02:58 -03:00
sergey
5cf9a4d665 [plsql] fixed multiline SELECT parse
fixed multiline SELECT parse. Parsing skips SELECT statements to the ';'
delimiter or end of line. If statement terminated by the end of line,
next line starting from the middle of SELECT statement will fail to
parse. For example,
SELECT 1
INTO V
FROM DUAL;
will fail.
2016-11-22 13:49:35 -03:00
sergey
ec13ff1662 missing change in PLSQLParserVisitorAdapter
missing change in PLSQLParserVisitorAdapter
2016-11-22 13:49:22 -03:00
sergey
90862cc993 Added correct parse of IS [NOT] NULL
fixed crash of parsing following code (from unittest):
IF V_BUF IS NULL THEN
null;
end if;
2016-11-22 13:49:16 -03:00
Andreas Dangel
f3c919bf6e Add the new apex rules to the releases ruleset for 5.5.3 2016-11-21 21:24:24 +01:00
Juan Martín Sotuyo Dodero
103efbbc90 Merge branch 'pr-135' into pmd/5.5.x 2016-11-21 14:56:34 -03:00
Juan Martín Sotuyo Dodero
2d0bbd4e17 Update changelog 2016-11-21 14:55:08 -03:00
Juan Martín Sotuyo Dodero
815d141d64 Fix since and rule links 2016-11-21 14:55:08 -03:00
Juan Martín Sotuyo Dodero
5b83aa1bcf Minor improvements
- Don't need thread safety for local vars, drop StringBuffer in favor of StringBuilder
 - Make sure Helpers are non-instantiable
2016-11-21 14:55:08 -03:00
Sergey
4187acf422 [apex] New security ruleset 2016-11-21 14:54:57 -03:00
Andreas Dangel
a7b74d1eff Merge branch 'pr-126' into pmd/5.5.x 2016-11-20 18:33:34 +01:00
Andreas Dangel
87c460bb55 Merge branch 'pr-126' into pmd/5.4.x 2016-11-20 18:28:20 +01:00
Andreas Dangel
051f50e932 Update changelog 2016-11-20 18:27:45 +01:00
Juan Martín Sotuyo Dodero
28e2f11003 Avoid creating a new String to qualify types
- This is now slightly faster, which for a method that gets called
    over 1 million times on large projects is significant.
 - We should still look for ways to reduce the number of calls to this
    method.
2016-11-20 18:27:06 +01:00
Andreas Dangel
8e0effd917 Merge branch 'bug-1518' into pmd/5.5.x 2016-11-20 18:04:48 +01:00
Andreas Dangel
8b9431b43a Merge branch 'bug-1518' into pmd/5.4.x 2016-11-20 18:00:08 +01:00
Andreas Dangel
4d8dcf3443 Fixes #1518 [xml] Error while processing xml file with ".webapp" in the file or directory name 2016-11-20 17:55:35 +01:00
Juan Martín Sotuyo Dodero
f3bda99275 Update changelog 2016-11-14 20:07:03 +01:00
Juan Martín Sotuyo Dodero
e4dc70c5d5 [java] Properly handle enums with ignore identifiers
- Right now it throws an NPE
 - Having fixed the NPE, it threw an ArrayIndexOutOfBounds
 - Finally, it was just not working as expected
 - Fixes https://sourceforge.net/p/pmd/bugs/1542/
2016-11-14 20:06:41 +01:00
Juan Martín Sotuyo Dodero
a09f9dfcbf Merge branch 'pr-123' into pmd/5.5.x 2016-11-10 10:02:50 -03:00
Juan Martín Sotuyo Dodero
c664b6c0a8 Update changelog 2016-11-10 09:52:37 -03:00
Jerome Russ
bf2460c16d Changing methods to lowercase so casing doesn't matter
Apex is case-insensitive so removing casing from the check for asserts.
2016-11-10 09:47:40 -03:00
Juan Martín Sotuyo Dodero
89674fa007 [apex] Add failing sample for issue #1543 2016-11-10 09:46:35 -03:00
Andreas Dangel
e9d9bbf597 Upgrade maven-pmd-plugin to 3.7 2016-11-05 12:44:16 +01:00
Andreas Dangel
e8b5aaa2be Prepare next development version 2016-11-05 12:04:23 +01:00
Andreas Dangel
5f13cc20e9 [maven-release-plugin] prepare for next development iteration 2016-11-05 11:02:08 +01:00
Andreas Dangel
96fffcaadd [maven-release-plugin] prepare release pmd_releases/5.5.2 2016-11-05 11:02:08 +01:00
Andreas Dangel
93aec5d064 Prepare pmd release 5.5.2 2016-11-05 10:55:17 +01:00
Andreas Dangel
37156724aa Merge branch 'pmd/5.4.x' 2016-11-05 10:43:02 +01:00
Andreas Dangel
ed07ff259c Prepare next development version 2016-11-04 21:58:29 +01:00
Andreas Dangel
e78f80416a [maven-release-plugin] prepare for next development iteration 2016-11-04 21:01:18 +01:00
Andreas Dangel
5019eb11e4 [maven-release-plugin] prepare release pmd_releases/5.4.3 2016-11-04 21:01:18 +01:00
Andreas Dangel
194167e3c0 Prepare pmd release 5.4.3 2016-11-04 20:53:46 +01:00
Andreas Dangel
aa19957cee Merge branch 'pmd/5.3.x' into pmd/5.4.x 2016-11-04 20:31:53 +01:00
Andreas Dangel
253d35a926 Update release script 2016-11-04 20:24:51 +01:00
Andreas Dangel
6007840346 Prepare next development version 2016-11-04 19:58:50 +01:00
Andreas Dangel
dcb4ecc674 [maven-release-plugin] prepare for next development iteration 2016-11-04 19:02:30 +01:00
Andreas Dangel
14cdf0b550 [maven-release-plugin] prepare release pmd_releases/5.3.8 2016-11-04 19:02:30 +01:00
Andreas Dangel
40ed778e43 Prepare pmd release 5.3.8 2016-11-04 18:37:25 +01:00
Andreas Dangel
92153696d8 Merge branch 'bug-1520' 2016-11-04 16:28:44 +01:00
Andreas Dangel
33e1850d6b Merge branch 'bug-1520' into pmd/5.4.x 2016-11-04 16:24:55 +01:00
Andreas Dangel
3a46e9bab2 Merge branch 'bug-1520' into pmd/5.3.x 2016-11-04 16:24:48 +01:00
Andreas Dangel
d7b8bae1c9 plsql: adjust code samples, since "ONLY" is now a keyword 2016-11-04 16:21:25 +01:00
Andreas Dangel
4ab1d0cbee Fixes #1520 [plsql] Missing PL/SQL language constructs in parser: Is Of Type, Using 2016-11-04 16:10:07 +01:00
Andreas Dangel
52a8758262 Merge branch 'bug-1532' 2016-11-04 12:49:26 +01:00
Andreas Dangel
7bfc1b9545 Merge branch 'bug-1532' into pmd/5.4.x 2016-11-04 12:47:21 +01:00
Andreas Dangel
8444b2fea6 Merge branch 'bug-1532' into pmd/5.3.x 2016-11-04 12:46:05 +01:00
Andreas Dangel
a9d0de9450 Fixes #1532 [java] CloneMethodMustImplementCloneable: Implemented Interface extends Cloneable 2016-11-04 12:41:57 +01:00
Andreas Dangel
2c7f2ec0df Merge branch 'feature-1539' 2016-11-04 11:20:11 +01:00
Andreas Dangel
cec3e1a2ad plsql: add new rule "MisplacedPragma"
#1539 [plsql] Create new rule for strict syntax checking: MisplacedPragma
2016-11-04 11:19:52 +01:00
Andreas Dangel
176eda21fe Merge branch 'bug-1527' 2016-11-04 10:34:39 +01:00
Andreas Dangel
276cff02f8 Merge branch 'bug-1527' into pmd/5.4.x 2016-11-04 10:30:46 +01:00
Andreas Dangel
08b7959557 Merge branch 'bug-1527' into pmd/5.3.x 2016-11-04 10:23:33 +01:00
Andreas Dangel
495dcb5ea9 Fixes #1527 [plsql] PRAGMA AUTONOMOUS_TRANSACTION gives processing errors 2016-11-04 10:19:24 +01:00
Andreas Dangel
6810b9c54a Merge branch 'bug-1521' 2016-11-04 09:45:27 +01:00
Andreas Dangel
9f9124b8fb Fixes #1521 [apex] ApexUnitTestClassShouldHaveAsserts: Parsing error on APEX class: expected one element but was: <BlockStatement, BlockStatement> 2016-11-04 09:44:23 +01:00
Andreas Dangel
6dcf301e4d Merge branch 'bug-1490' 2016-11-04 08:55:45 +01:00
Andreas Dangel
8c89ce0d9d Merge branch 'bug-1490' into pmd/5.4.x 2016-11-04 08:49:59 +01:00
Andreas Dangel
15ff7ca944 Fixes #1490 [java] PMD Error while processing - NullPointerException 2016-11-04 08:46:00 +01:00
Andreas Dangel
ba50b3183e Refactor out AbstractLombokAwareRule 2016-11-02 20:34:50 +01:00
Andreas Dangel
e611dc8412 Merge branch 'bug-1494' 2016-11-02 20:27:22 +01:00
Andreas Dangel
4ac34af067 Merge branch 'bug-1494' into pmd/5.4.x 2016-11-02 20:22:53 +01:00
Andreas Dangel
0c75e5123c Fixes #1494 [java] SingularField: lombok.Data false positive 2016-11-02 20:22:15 +01:00
Andreas Dangel
cc94ed4c33 Add missing sites for sub modules (java8, test, ui)
Add missing sub module site menu (groovy, java8, perl, swift, test, ui)
2016-11-02 19:51:43 +01:00
Andreas Dangel
9be65ef2eb Add unit test for #1537 Implement strict ruleset parsing 2016-11-01 18:30:39 +01:00
Andreas Dangel
67ddaafe44 Merge branch 'fix1531' of https://github.com/fjalvingh/pmd 2016-10-30 19:23:11 +01:00
Andreas Dangel
db26052236 Merge branch 'pr-119' 2016-10-30 19:22:53 +01:00
Andreas Dangel
5827acb93e Merge branch 'pr-119' into pmd/5.4.x 2016-10-30 19:17:26 +01:00
Andreas Dangel
7339227e9c Merge branch 'pr-119' into pmd/5.3.x 2016-10-30 19:16:52 +01:00
Andreas Dangel
2cc91732ec Update changelog 2016-10-30 19:11:54 +01:00
Frits Jalvingh
4310b36344 Fix PMD issue 1531- endless loop followed by OOM while parsing (PL)SQL 2016-10-30 19:09:11 +01:00
Andreas Dangel
575a5b6547 Add unit test for #1531 [plsql] OOM/Endless loop while parsing (PL)SQL 2016-10-30 19:08:00 +01:00
Andreas Dangel
1f046cd7e9 Update credits 2016-10-30 19:01:47 +01:00
Andreas Dangel
5937e89d4f Merge branch 'pr-118' 2016-10-30 18:59:10 +01:00
Andreas Dangel
7791a87c23 Update changelog 2016-10-30 18:52:17 +01:00
Andreas Dangel
2158a792ff Merge branch 'simplify-variable-declarator-id-parsing' of https://github.com/Monits/pmd into pr-118
# Conflicts:
#	pmd-java/etc/grammar/Java.jjt
2016-10-30 18:51:44 +01:00
Andreas Dangel
2f498d1130 Merge branch 'pr-117' 2016-10-30 18:48:53 +01:00
Andreas Dangel
0ba362c4c0 Update changelog 2016-10-30 18:38:52 +01:00
Andreas Dangel
2f5a7058cb Merge branch 'faster-symbol' of https://github.com/Monits/pmd into pr-117 2016-10-30 18:38:08 +01:00
Andreas Dangel
b2a66fef01 Merge branch 'pr-116' 2016-10-30 18:32:44 +01:00
Andreas Dangel
fa9485b41e Update changelog 2016-10-30 18:26:10 +01:00
Andreas Dangel
c6680e2f66 Merge branch 'better-collections' of https://github.com/Monits/pmd into pr-116 2016-10-30 18:25:35 +01:00
Andreas Dangel
5db46d6ad1 Merge branch 'pr-115' 2016-10-30 18:22:00 +01:00
Andreas Dangel
4cf22bed16 Update changelog 2016-10-30 18:14:59 +01:00
Andreas Dangel
15b36498f3 More test cases for lambda parsing 2016-10-30 18:14:23 +01:00
Andreas Dangel
10e4cc7290 Merge branch 'faster-parse' of https://github.com/Monits/pmd into pr-115
# Conflicts:
#	pmd-java/etc/grammar/Java.jjt
2016-10-30 18:12:54 +01:00
Andreas Dangel
949470013a Merge branch 'pr-114' 2016-10-30 17:51:43 +01:00
Andreas Dangel
bdde3533dc Update changelog 2016-10-30 17:44:56 +01:00
Andreas Dangel
bdb408507b Merge branch 'remove-dead-code' of https://github.com/Monits/pmd into pr-114 2016-10-30 17:39:48 +01:00
Andreas Dangel
6fb962c326 Merge branch 'sdte-java8-compat' of https://github.com/Monits/pmd 2016-10-30 17:32:08 +01:00
Andreas Dangel
2d1337b300 Merge branch 'pr-113' 2016-10-30 17:31:50 +01:00
Andreas Dangel
315ea28d4c Merge branch 'pr-113' into pmd/5.4.x 2016-10-30 17:25:47 +01:00
Andreas Dangel
45dfd29a46 Merge branch 'pr-113' into pmd/5.3.x 2016-10-30 17:25:14 +01:00
Andreas Dangel
f8f0afb5b4 Update changelog 2016-10-30 17:21:18 +01:00
Juan Martín Sotuyo Dodero
f8d1162886 Fix ClassCastException on SignatureDeclareThrowsException
- Java 8 code allows for things such as
   `class UnmodifiableList<T> implements @Readonly List<@Readonly T> {}`
    where not all token in the ASTImplementsList are ASTClassOrInterfaceType
2016-10-30 17:19:16 +01:00
Andreas Dangel
020170bd76 Add test for #1535 [java] SignatureDeclareThrowsException: ClassCastException with Annotation 2016-10-30 17:18:31 +01:00
Andreas Dangel
cb304c9ae7 Merge branch 'cmmic-java8-compat' of https://github.com/Monits/pmd 2016-10-29 18:34:43 +02:00
Andreas Dangel
646a4b0650 Merge branch 'pr-112' 2016-10-29 18:34:00 +02:00
Andreas Dangel
b0fb0cadc1 Merge branch 'pr-112' into pmd/5.4.x 2016-10-29 18:28:36 +02:00
Andreas Dangel
5c80473108 Merge branch 'pr-112' into pmd/5.3.x 2016-10-29 18:27:56 +02:00
Andreas Dangel
9de0727e43 Update changelog 2016-10-29 18:21:55 +02:00
Andreas Dangel
127a2be871 whitespaces 2016-10-29 18:19:59 +02:00
Juan Martín Sotuyo Dodero
238f6b721b Fix ClassCastException on CloneMethodMustImplementCloneable
- Java 8 code allows for things such as
    `class UnmodifiableList<T> implements @Readonly List<@Readonly T> {}`
    where not all token in the ASTImplementsList are ASTClassOrInterfaceType
2016-10-29 18:19:00 +02:00
Andreas Dangel
f4f2402661 Add test for #1534 [java] CloneMethodMustImplementCloneable: ClassCastException with Annotation (java8) 2016-10-29 18:17:59 +02:00
Andreas Dangel
75c9cce071 Merge branch 'birule-java8-compat' of https://github.com/Monits/pmd 2016-10-29 17:25:02 +02:00
Andreas Dangel
04257e657d Merge branch 'pr-111' 2016-10-29 17:24:40 +02:00
Andreas Dangel
b2c59bcbdb Merge branch 'pr-111' into pmd/5.4.x 2016-10-29 17:20:32 +02:00
Andreas Dangel
c95051e97d Merge branch 'pr-111' into pmd/5.3.x 2016-10-29 17:19:47 +02:00
Andreas Dangel
7d5be34cd2 Update changelog 2016-10-29 17:16:01 +02:00
Juan Martín Sotuyo Dodero
1e5c1c05ca In Java 8, annotations may appear as first child
- For instance `Object o = new @Interned MyObject();` would fail with a ClassCastException
 - The current code deals with it gracefully
2016-10-29 17:13:33 +02:00
Andreas Dangel
5d11e77208 Add test for #1533 [java] BooleanInstantiation: ClassCastException with Annotation 2016-10-29 17:12:20 +02:00
Frits Jalvingh
42d5a402c7 Fix PMD issue 1531- endless loop followed by OOM while parsing (PL)SQL 2016-10-18 17:41:08 +02:00
Andreas Dangel
e7a68f4492 Merge branch 'pr-110' 2016-10-16 14:15:04 +02:00
Andreas Dangel
f88e86cdb1 Merge branch 'bug-1530' 2016-10-16 14:14:30 +02:00
Andreas Dangel
578d854632 Merge branch 'bug-1530' into pmd/5.4.x 2016-10-16 14:08:13 +02:00
Andreas Dangel
1bc409119c Update changelog, fixes #1530 [java] Parser exception on Java code 2016-10-16 14:07:56 +02:00
Juan Martín Sotuyo Dodero
283dc00a43 Replace syntactic lookahead with semantic one
- They are the same, but JavaCC seems to handle this one better.
2016-10-16 14:01:26 +02:00
Juan Martín Sotuyo Dodero
e9f14e4496 Add failing test scenario 2016-10-16 13:59:17 +02:00
Juan Martín Sotuyo Dodero
9b7372eec0 Minor improvements
- Typos, extra whitespace, a missing static, clearer loops..
2016-10-15 02:55:02 -03:00
Juan Martín Sotuyo Dodero
8c82dae34c Fully implemente couldResolve 2016-10-14 19:35:32 -03:00
Juan Martín Sotuyo Dodero
565a9aa0d8 Add a cache to ImplicitImportResolver
- Classes in java.lang.* aren't that many, yet they hit a lot (String,
    all boxed primitives, Math, etc.), so it makes sense to cache them
2016-10-14 18:59:52 -03:00
Juan Martín Sotuyo Dodero
d350bcb49e Make explicit imports orders of times faster
- We can tell if a name can be resolved or not, and we can do so in
    constant time.
2016-10-14 16:06:28 -03:00
Juan Martín Sotuyo Dodero
567be45b8c Simplify VariableDeclaratorId parsing
- Don't look for arrays where there can be none
2016-10-14 10:06:29 -03:00
Juan Martín Sotuyo Dodero
478ed3463c Simplify lambda pursing even further
- Remove a redundant case
 - Restrict grammar according to spec with a simpler scenario
2016-10-14 09:24:06 -03:00
Juan Martín Sotuyo Dodero
09ac963709 Improve SymbolTable times further
- Expand hashCode calculation for `MethodNameDeclaration` to avoid collisions
    when overloading.
 - Also make sure `builtInMethodDeclaration` provides a complete syntax tree to avoid NPE
    when calling `hashCode` or `equals`
2016-10-13 20:40:46 -03:00
Juan Martín Sotuyo Dodero
d8344b0672 Simplify varargs detection
- Make use of our Java knowledge when analyzing Java code
2016-10-13 18:03:51 -03:00
Juan Martín Sotuyo Dodero
382699b766 Improve type resolution
- Notice the `couldResolve` doesn't guarantee a positive resolution, but still
     manages to kill early some resolver checks
 - `PrimiiveTypeResolver.resolve()` and `VoidTypeResolver.resolve()`
     were the 2nd and 5th most time consuming methods on several profiles
     I ran. This change fixes it.
2016-10-13 18:03:31 -03:00
Juan Martín Sotuyo Dodero
be83d154d0 Don't assume the List supports random access 2016-10-13 17:17:43 -03:00
Juan Martín Sotuyo Dodero
42277d7b8d Simplify collection expressions 2016-10-13 17:17:17 -03:00
Juan Martín Sotuyo Dodero
a046b8f93d Simplify lambda parsing
- Handle less scenarios
 - Have scenarios be defined more broadly (ie: allow more than 3 params)
 - This improves parsing performance by roughly ~10%
2016-10-13 14:53:51 -03:00
Juan Martín Sotuyo Dodero
df9893099f No PMD version supports running on JRE5 anymore
- Remove dead code to guard against JRE5 issues
2016-10-13 01:59:19 -03:00
Juan Martín Sotuyo Dodero
61b55bd7e5 Minor improvements
- Use `Deque` and `ArrayDeque` instead of `Stack`
 - Use presized `ArrayList` instead of a dynamic `LinkedList` when possible
 - Don't create empty `HashSet` when `Collections.emptySet()` suffices
 - User `Collections.singletonList()` were apropriate
2016-10-13 01:53:47 -03:00
Juan Martín Sotuyo Dodero
8f62f6cae9 In Java 8, annotations may appear as first child
- For instance `Object o = new @Interned MyObject();` would fail with a ClassCastException
 - The current code deals with it gracefully
2016-10-12 21:20:48 -03:00
Juan Martín Sotuyo Dodero
ca2ccb4a80 Fix ClassCastException on SignatureDeclareThrowsException
- Java 8 code allows for things such as
   `class UnmodifiableList<T> implements @Readonly List<@Readonly T> {}`
    where not all token in the ASTImplementsList are ASTClassOrInterfaceType
2016-10-12 18:06:52 -03:00
Juan Martín Sotuyo Dodero
3774a22878 Fix ClassCastException on CloneMethodMustImplementCloneable
- Java 8 code allows for things such as
    `class UnmodifiableList<T> implements @Readonly List<@Readonly T> {}`
    where not all token in the ASTImplementsList are ASTClassOrInterfaceType
2016-10-12 18:01:03 -03:00
Juan Martín Sotuyo Dodero
a10f98e0c4 Replace syntactic lookahead with semantic one
- They are the same, but JavaCC seems to handle this one better.
2016-10-12 16:58:33 -03:00
Juan Martín Sotuyo Dodero
a50c781d0a Add failing test scenario 2016-10-12 14:18:29 -03:00
Juan Martín Sotuyo Dodero
fccd26b2d0 Dont use synchronized structures onnon-shared data
- AFAIK ScopeAndDeclarationFinder is only used as a local,
    used as alocal by SymbolFacade, used as a local by SourceCodeProcessor.
    Synchronizing is needless.
2016-10-11 17:48:39 -03:00
Andreas Dangel
b773da1441 Merge branch 'bug-1529' 2016-10-01 17:58:53 +02:00
Andreas Dangel
1b52e0192a Merge branch 'bug-1529' into pmd/5.4.x 2016-10-01 17:54:11 +02:00
Andreas Dangel
461365f543 Merge branch 'bug-1529' into pmd/5.3.x 2016-10-01 17:49:33 +02:00
Andreas Dangel
8667aea076 Fixes #1529 [java] UnusedImports: The created rule violation has no class name 2016-10-01 17:45:47 +02:00
Andreas Dangel
aec40ec20c groovy: fix GroovyLanguage not in src/main 2016-09-26 20:10:11 +02:00
Andreas Dangel
82cc8b1d50 groovy: Add groovy to pmd-dist 2016-09-26 20:10:08 +02:00
Andreas Dangel
f9deb34809 Merge branch 'bug-1522' 2016-09-25 18:42:51 +02:00
Andreas Dangel
354b9a9cbc Merge branch 'bug-1522' into pmd/5.4.x 2016-09-25 18:37:38 +02:00
Andreas Dangel
b07c2f4409 Merge branch 'bug-1522' into pmd/5.3.x 2016-09-25 18:36:47 +02:00
Andreas Dangel
db44bc4745 Fixes #1522 [java] CommentRequired: false positive 2016-09-25 18:32:26 +02:00
Andreas Dangel
b67ac6ff2b Merge branch 'pr-107' 2016-09-25 17:01:46 +02:00
Andreas Dangel
ccc09c5d4f Update changelog 2016-09-25 16:58:55 +02:00
Andreas Dangel
108e302bb1 Merge branch 'cpd-groovy' of https://github.com/Monits/pmd into pr-107 2016-09-25 16:51:10 +02:00
Juan Martín Sotuyo Dodero
f01cc473d2 Initial support for CPD Groovy 2016-09-11 14:12:17 -03:00
Andreas Dangel
2fc01fedb5 Add readme 2016-09-06 21:10:56 +02:00
Andreas Dangel
522d0ea311 Verify #1519 [java] UselessParenthesis: False Positive: "Prohibits the use of useless parentheses" when more than one line 2016-09-02 18:22:43 +02:00
Andreas Dangel
093a813c0f Merge branch 'pr-106' 2016-09-02 18:11:49 +02:00
Andreas Dangel
a99c506342 Update changelog 2016-09-02 18:06:00 +02:00
Andreas Dangel
1693692f80 Merge branch 'cpd-no-ignore-constructor' of https://github.com/Monits/pmd into pr-106 2016-09-02 18:04:39 +02:00
Andreas Dangel
2245a644f4 example toolchains.xml - add examples for macosx and windows 2016-09-02 17:32:11 +02:00
Juan Martín Sotuyo Dodero
579853385d Keep constructor names under ignoreIdentifiers
- Unrelated classes that just happen to have matching constructor types
    (maybe sibling classes extening the same base class, and simply
    calling super on all constructors) should not be reported as copy-paste
 - If you copied a whole class, CPD should still match it due to other
    member methods / fields, only case it would no longer catch is that of
    a class exclusively containing constructors, but that should probably be
    a PMD rule, and not catched by CPD itself
2016-09-01 16:57:24 -03:00
Andreas Dangel
c8a9f43ee0 Refactor InvalidSlf4jMessageFormatRule 2016-08-07 11:59:36 +02:00
Andreas Dangel
cd9a8186db reformat, whitespaces 2016-08-07 11:52:50 +02:00
Andreas Dangel
3bb9d90de8 Merge branch 'bug-1506' 2016-08-07 11:16:05 +02:00
Andreas Dangel
d294a91ad8 Merge branch 'bug-1506' into pmd/5.4.x 2016-08-07 11:08:22 +02:00
Andreas Dangel
7421f28414 Merge branch 'bug-1506' into pmd/5.3.x 2016-08-07 10:53:32 +02:00
Andreas Dangel
cf4938a65b Fixes #1506 [core] When runing any RuleTst, start/end methods not called 2016-08-07 10:44:44 +02:00
Andreas Dangel
6aee2dd232 Merge branch 'bug-1500' 2016-08-05 11:16:32 +02:00
Andreas Dangel
a74105faa4 Fixes #1500 [java] InvalidSlf4jMessageFormat: doesn't ignore exception param 2016-08-05 11:08:36 +02:00
Andreas Dangel
869ee8569e verify #1505 [java] ConstantsInInterface false negative 2016-08-03 20:06:02 +02:00
Andreas Dangel
8a6ac1f156 Merge branch 'bug-1509' 2016-08-03 19:56:59 +02:00
Andreas Dangel
a6acf7ca81 Fixes #1509 [java] InvalidSlf4jMessageFormat NPE 2016-08-03 19:43:10 +02:00
Andreas Dangel
4bb02531c7 Use new pmd for m-pmd-plugin 2016-07-28 20:12:38 +02:00
Andreas Dangel
0a2ebc2186 Formatting, license header 2016-07-28 19:44:16 +02:00
Andreas Dangel
3e43fd8eb1 Update (old) changelog for new rules with PMD 5.5.1 2016-07-28 19:44:04 +02:00
Andreas Dangel
5207d48bb2 Prepare next development version 2016-07-27 22:03:51 +02:00
Andreas Dangel
6746b7522c [maven-release-plugin] prepare for next development iteration 2016-07-27 20:40:56 +02:00
Andreas Dangel
cc3ad9aeb7 [maven-release-plugin] prepare release pmd_releases/5.5.1 2016-07-27 20:40:56 +02:00
Andreas Dangel
8684b58239 Prepare pmd release 5.5.1 2016-07-27 20:30:52 +02:00
Andreas Dangel
eefda72b4d travis: update sonar url and token 2016-07-27 20:21:57 +02:00
Andreas Dangel
6f29730509 Update changelog 2016-07-27 19:58:26 +02:00
Andreas Dangel
841206187b Merge branch 'apex-commits' 2016-07-27 19:54:48 +02:00
Andreas Dangel
560e05feb0 Update changelog 2016-07-27 19:54:27 +02:00
Andreas Dangel
07443d5ec0 Merge remote-tracking branch 'pmd-apex/master' into apex-commits 2016-07-27 19:51:14 +02:00
Andreas Dangel
5b6580448e #1508 - Only close the classloader if its ours 2016-07-27 19:43:31 +02:00
Andreas Dangel
aae3ee1395 Merge branch 'pr-104' 2016-07-26 22:17:04 +02:00
Andreas Dangel
b067b32554 Update changelog 2016-07-26 22:11:04 +02:00
Andreas Dangel
20c4f168c1 Merge branch 'close-read-files' of https://github.com/wolfs/pmd into pr-104 2016-07-26 22:10:15 +02:00
Andreas Dangel
39a9d99710 #1508 - Only close the classloader if its ours 2016-07-26 21:59:15 +02:00
Andreas Dangel
a491cef61c Merge branch 'bug-1508' 2016-07-26 21:56:14 +02:00
Andreas Dangel
7578875cbd #1508 - Only close the classloader if its ours 2016-07-26 21:49:33 +02:00
Andreas Dangel
42a5c6a537 Merge branch 'bug-1508' into pmd/5.4.x 2016-07-26 21:42:55 +02:00
Andreas Dangel
229fc57073 Merge branch 'bug-1508' into pmd/5.3.x 2016-07-26 21:39:17 +02:00
Andreas Dangel
65708ef704 Update changelog 2016-07-26 21:39:03 +02:00
Andreas Dangel
d76b689c07 Fixes #1508 [core] [java] PMD is leaking file handles
Closes class loader after PMD has processed all files
2016-07-25 21:42:21 +02:00
Andreas Dangel
293731f009 Fixes #1508 [core] [java] PMD is leaking file handles
Closes class loader after ant task is finished
2016-07-25 21:34:40 +02:00
Andreas Dangel
88d1823c2e Fixes #1508 [core] [java] PMD is leaking file handles
Fixes InputStreams and Readers
2016-07-25 21:25:34 +02:00
Stefan Wolf
23bee1cad1 Close the created URLClassLoader when finishing the Ant task 2016-07-25 14:08:04 +02:00
Stefan Wolf
aafceb8d89 Close InputStreams for rule sets
When having a long running process like the Gradle daemon,
then not closing read resources makes it impossible to delete
files on Windows.
2016-07-25 13:20:56 +02:00
Stefan Wolf
9fe399f3b3 Close classes read by PMDASMClassLoader
When having a long running process like the Gradle daemon,
then not closing read resources makes it impossible to delete
files on Windows.
2016-07-25 13:20:56 +02:00
Robert Sösemann
5fc62c95b2 Fixed compiler warnings 2016-07-13 15:08:19 +02:00
Robert Sösemann
53752a0289 Minor formatting 2016-07-13 14:57:36 +02:00
Robert Sösemann
2cfcf33697 Merge pull request #43 from anand13s/master
Basic apex unit test rules
2016-07-13 14:51:05 +02:00
Anand
b41f9e97b7 Fix missing rule in ruleset.xml, reenable test 2016-07-12 00:12:07 -07:00
Anand
4b2b576550 Basic apex unit test rules 2016-07-11 23:19:24 -07:00
Andreas Dangel
4e5e0187d7 Disable doclint in site generation (-Psite) with java8 2016-07-08 16:56:03 +02:00
Andreas Dangel
081ea676fb Merge branch 'pr-103-on-master' 2016-07-07 22:44:53 +02:00
Andreas Dangel
1916bcfd00 Merge branch 'pr-103' 2016-07-07 22:44:15 +02:00
Andreas Dangel
9240f98cce Merge branch 'pr-103' into pmd/5.4.x 2016-07-07 22:35:26 +02:00
Andreas Dangel
4adbeb04f1 Merge branch 'pr-103' into pmd/5.3.x 2016-07-07 22:34:30 +02:00
Andreas Dangel
648e697ab0 Update changelog 2016-07-07 22:29:30 +02:00
Andreas Dangel
0660097db2 Add unit test for #1501 [java] CyclomaticComplexity rule causes OOM when class reporting is disabled 2016-07-07 22:27:16 +02:00
Frits Jalvingh
afc0f25795 Fix for 1501: CyclomaticComplexity rule causes OOM when class reporting is disabled 2016-07-07 22:26:27 +02:00
Andreas Dangel
beb7f004b6 Update changelog 2016-07-07 22:08:49 +02:00
Andreas Dangel
4464302f53 Same fix for #1501 for apex 2016-07-07 22:05:04 +02:00
Andreas Dangel
8aaf70ec8d Merge branch 'fix-1501-oom' of https://github.com/fjalvingh/pmd into pr-103 2016-07-07 21:56:55 +02:00
Andreas Dangel
ae1595c055 Add unit test for #1501 [java] CyclomaticComplexity rule causes OOM when class reporting is disabled 2016-07-07 21:56:09 +02:00
Andreas Dangel
c438debc2a Merge branch 'pr-102' 2016-07-07 21:27:14 +02:00
Andreas Dangel
4fe4555c7a Update changelog 2016-07-07 21:19:04 +02:00
Andreas Dangel
eca09a0ce8 Merge branch 'master' of https://github.com/up2go-sschwarz/pmd into pr-102 2016-07-07 20:56:52 +02:00
Andreas Dangel
66efd5c4f2 Merge branch 'pr-101' 2016-07-07 20:54:47 +02:00
Andreas Dangel
2ee62f7b5f Update changelog 2016-07-07 20:48:01 +02:00
Andreas Dangel
4d52be5cf2 PMDASMClassloader: minor refactoring 2016-07-07 20:47:53 +02:00
Andreas Dangel
9823f17cf8 Merge branch 'master' of https://github.com/fjalvingh/pmd into pr-101 2016-07-07 20:32:53 +02:00
David Renz
947e2ec1ac Merge remote-tracking branch 'pmd/master' 2016-07-04 17:09:08 +02:00
Frits Jalvingh
3ea707ee88 Fix for 1501: CyclomaticComplexity rule causes OOM when class reporting is disabled 2016-07-04 08:51:27 +02:00
Andreas Dangel
e95faa9f28 Merge branch 'bug-1499' 2016-07-02 17:00:43 +02:00
Andreas Dangel
e25bd5e9c1 Merge branch 'bug-1499' into pmd/5.4.x 2016-07-02 16:54:50 +02:00
Andreas Dangel
c041f756c2 Merge branch 'bug-1499' into pmd/5.3.x 2016-07-02 16:49:19 +02:00
Andreas Dangel
553cafff6e Fixes #1499 [core] CPD test break PMD 5.5.1 build on Windows 2016-07-02 16:48:46 +02:00
Andreas Dangel
8510d8ef0a travis toolchains: add amd64 suffix 2016-07-02 13:00:13 +02:00
Andreas Dangel
435d30775c Add a toolchains.xml for travis 2016-07-02 12:50:56 +02:00
Andreas Dangel
28dd0305ec Remove unneeded profiles sf-release and sf-snapshot 2016-07-02 12:15:30 +02:00
Andreas Dangel
5f6e6c3861 Add javadoc and source plugin by default, so that the repo
is always release ready (e.g. no javadoc errors).
2016-07-02 12:11:48 +02:00
up2go-sschwarz
13c991c6ae fixed https://github.com/Up2Go/codeclimate-apexmetrics/issues/24 2016-06-30 17:41:56 +02:00
David Renz
918d1415dd Merge remote-tracking branch 'pmd/master' 2016-06-28 14:40:30 +02:00
Andreas Dangel
9b0f6f40fb Fix duplicated maven-antrun-plugin section 2016-06-27 20:44:28 +02:00
Andreas Dangel
17b6b17580 Update pmd plugin 2016-06-25 22:53:24 +02:00
Andreas Dangel
9f5839c7fa Prepare next development version 2016-06-25 18:50:13 +02:00
Frits Jalvingh
46ad3a4700 Improve multithreading performance: do not lock on classloader. 2016-06-25 17:59:42 +02:00
Andreas Dangel
ef2a97d267 [maven-release-plugin] prepare for next development iteration 2016-06-25 17:53:11 +02:00
Andreas Dangel
64d9ef96fc [maven-release-plugin] prepare release pmd_releases/5.5.0 2016-06-25 17:53:10 +02:00
Andreas Dangel
7d928296e6 Fix javadoc errors 2016-06-25 17:40:48 +02:00
Andreas Dangel
c7b94f6e5c Change the apex parser to look like "released"
The version is taken from 55042bfc2e/com.salesforce.ide.apex.core/lib
2016-06-25 17:05:47 +02:00
Andreas Dangel
7009a92915 Prepare pmd release 5.5.0 2016-06-25 16:54:11 +02:00
Andreas Dangel
5c6cd5cbed Update changelog 2016-06-25 13:51:03 +02:00
Andreas Dangel
461213fd0a Merge branch 'pr-100' 2016-06-25 09:09:12 +02:00
Andreas Dangel
ba0f2f6c35 Update changelog 2016-06-25 09:09:00 +02:00
Andreas Dangel
8ab06f3f9e core - CSVRenderer: add unit test for escaping filenames (#100) 2016-06-25 09:07:21 +02:00
Andreas Dangel
a92bac5d84 Merge branch 'master' of https://github.com/founderbliss/pmd into pr-100 2016-06-25 08:58:14 +02:00
Andreas Dangel
597ad1ee5f Merge branch 'pr-99' 2016-06-25 08:57:25 +02:00
Andreas Dangel
3736d2cc67 Update changelog 2016-06-25 08:52:29 +02:00
Andreas Dangel
0b331a921e apex - add unit test for pr-99 / Trigger Name 2016-06-25 08:50:52 +02:00
Andreas Dangel
4042e0406e Merge branch 'issue-23' of https://github.com/Up2Go/pmd into pr-99 2016-06-25 08:35:12 +02:00
Michael Sive
3810074e69 escape filenames with commas in csvrenderer 2016-06-15 01:18:58 +00:00
David Renz
c2dac283c9 Merge remote-tracking branch 'pmd/master' 2016-06-14 15:10:48 +02:00
David Renz
ef78229374 Fixed Trigger name is reported incorrectly
https://github.com/Up2Go/codeclimate-apexmetrics/issues/23
2016-06-14 11:54:13 +02:00
Andreas Dangel
02378aa90c Merge branch 'pr-98' 2016-06-12 19:48:30 +02:00
Andreas Dangel
be2f612ad1 Update changelog 2016-06-12 19:42:17 +02:00
Andreas Dangel
bee5991121 Add unit test for inputfilepath parameter 2016-06-12 19:38:54 +02:00
Andreas Dangel
47e105bd36 Merge branch 'input_filelist_parameter' of https://github.com/mrb/pmd into pr-98 2016-06-12 19:20:09 +02:00
Andreas Dangel
a68fb251e6 Merge branch 'pr-97' 2016-06-12 19:11:16 +02:00
Andreas Dangel
be1751a0bf Update changelog 2016-06-12 19:06:14 +02:00
Andreas Dangel
9d6692976a Merge branch 'ignore-method-name-on-override' of https://github.com/Monits/pmd into pr-97 2016-06-12 19:03:15 +02:00
Andreas Dangel
312f614847 Merge branch 'pr-35' 2016-06-12 18:57:38 +02:00
Andreas Dangel
c92820eaae Merge branch 'pr-35' into pmd/5.4.x 2016-06-12 18:51:09 +02:00
Andreas Dangel
6efabd6909 Merge branch 'pr-35' into pmd/5.3.x 2016-06-12 18:50:07 +02:00
Andreas Dangel
f880d2ab95 Update changelog 2016-06-12 18:47:12 +02:00
mrb
363d066f23 Update docs and use better File functions 2016-06-09 15:57:04 -04:00
mrb
c2b8e1872d Add option for PMD command line for a comma delimited list of files 2016-06-09 13:57:03 -04:00
Juan Martín Sotuyo Dodero
fda753813b Don't report bad method names on @Override 2016-06-08 19:59:58 -03:00
Andreas Dangel
3b2b813b44 Update changelog 2016-06-08 20:14:07 +02:00
Andreas Dangel
0e105af2c0 Extend unit test for #1491 with quotes 2016-06-08 20:13:28 +02:00
Andreas Dangel
fb5e59cc23 Formatting, whitespace 2016-06-08 20:04:19 +02:00
Andreas Dangel
77a24b2b22 Merge branch '1491_code_climate_output_bug' of https://github.com/mrb/pmd into pr-96
Conflicts:
	pmd-core/src/main/java/net/sourceforge/pmd/renderers/CodeClimateRenderer.java
2016-06-08 20:03:47 +02:00
Andreas Dangel
7d04b3322c Update changelog, add new rule 2016-06-08 19:56:31 +02:00
Andreas Dangel
a454ec767a Merge branch 'master' of https://github.com/DavidRenz/pmd into pr-95 2016-06-08 19:53:48 +02:00
mrb
efdcbfe109 Clean up Code Climate renderer 2016-06-07 10:19:28 -04:00
Jan van Nunen
63293f8b31 Javascript tokenizer now ignores comment tokens. 2016-06-06 09:31:04 +02:00
Andreas Dangel
af21dd5297 Fixes #1492 [CLI] IncompatibleClassChangeError when running PMD
Use the maven shade plugin to create a modified apex-jorje uber jar,
which has the old asm dependency shaded into a different package,
so that it won't collide with asm 5.
2016-06-04 20:50:19 +02:00
Andreas Dangel
2e9b73141e Fix unit test 2016-06-04 20:19:19 +02:00
Andreas Dangel
0ec5f63744 Code Climate renderer - update PMD Developer URL 2016-06-04 19:40:00 +02:00
Andreas Dangel
8a9bccb583 Fixes #1491 Code Climate JSON - corrupt output with real line breaks 2016-06-04 19:22:55 +02:00
Andreas Dangel
d9e6bab6a9 Fixes #1488 [Apex module] Windows line endings falsify the location of issues 2016-06-02 20:28:01 +02:00
David Renz
277ce76eb6 Added new apex rule (AvoidDmlStatementsInLoops) 2016-05-30 11:55:31 +02:00
David Renz
73b2e5e52d Merge remote-tracking branch 'pmd/master' 2016-05-30 11:49:30 +02:00
Andreas Dangel
5c9a8eb895 Merge branch 'pmd/5.4.x' 2016-05-29 21:17:50 +02:00
Andreas Dangel
f87dcb16cc Fix site generation
cherry picked: 8b8bb6d504dd22c90d36dac3fed976353f787504
2016-05-29 21:07:53 +02:00
Andreas Dangel
1fc6e7afa2 Prepare next development version 2016-05-29 21:00:32 +02:00
Andreas Dangel
4512da8f3f [maven-release-plugin] prepare for next development iteration 2016-05-29 20:04:35 +02:00
Andreas Dangel
5fa4b309ed [maven-release-plugin] prepare release pmd_releases/5.4.2 2016-05-29 20:04:34 +02:00
Andreas Dangel
9daa4ae835 Prepare pmd release 5.4.2 2016-05-29 19:55:25 +02:00
Andreas Dangel
ec18a41872 Merge branch 'pr-94' 2016-05-29 18:58:33 +02:00
Andreas Dangel
92ee665617 Update changelog 2016-05-29 18:54:01 +02:00
Andreas Dangel
4e92c2bc2b Merge branch 'master' of https://github.com/Up2Go/pmd into pr-94 2016-05-29 18:51:05 +02:00
Andreas Dangel
39c78d8e89 travis: add sonar 2016-05-29 18:50:00 +02:00
Andreas Dangel
8b34b2ef23 Merge branch 'bug-1479' 2016-05-29 18:37:19 +02:00
Andreas Dangel
be1a996ba5 Merge branch 'bug-1479' into pmd/5.4.x 2016-05-29 18:31:09 +02:00
Andreas Dangel
836af8d493 Merge branch 'bug-1479' into pmd/5.3.x 2016-05-29 18:23:34 +02:00
Andreas Dangel
04f16d7627 Fixes #1479 CloseResource false positive on Statement 2016-05-29 18:20:04 +02:00
Andreas Dangel
e834003e20 Merge branch 'bug-1480' 2016-05-28 16:46:04 +02:00
Andreas Dangel
8f4a262e8e Merge branch 'bug-1480' into pmd/5.4.x 2016-05-28 16:40:27 +02:00
Andreas Dangel
ef0891d527 Merge branch 'bug-1480' into pmd/5.3.x 2016-05-28 16:36:57 +02:00
Andreas Dangel
6afe513225 Fixes #1480 false positive on public modifier used with inner interface in enum 2016-05-28 16:33:10 +02:00
Andreas Dangel
e586a3ca6d Merge branch 'bug-1481' 2016-05-28 11:46:33 +02:00
Andreas Dangel
dc1d942241 Merge branch 'bug-1481' into pmd/5.4.x 2016-05-28 11:42:01 +02:00
Andreas Dangel
d1b9b3bc1f Merge branch 'bug-1481' into pmd/5.3.x 2016-05-28 11:36:55 +02:00
Andreas Dangel
379b0de186 Update changelog 2016-05-28 11:36:41 +02:00
Andreas Dangel
e71324e08c Fix unit test for #1481 2016-05-28 11:36:35 +02:00
Andreas Dangel
13f7675b67 Fixes #1481 no problems found results in blank file instead of empty xml 2016-05-28 11:27:22 +02:00
David Renz
5f1418e40c Fixed https://github.com/Up2Go/codeclimate-apex/issues/10 2016-05-25 17:34:19 +02:00
David Renz
4ef196a9b5 Tweaked Properties with real world repos 2016-05-24 16:11:39 +02:00
@rsoese (Twitter handle)
f5cbbca7d5 Tweaked Properties with real world repos 2016-05-24 15:56:02 +02:00
David Renz
2711f40413 Changed formatting of code examples
https://github.com/Up2Go/codeclimate-apex/issues/11
2016-05-24 15:22:43 +02:00
David Renz
a71bf9f234 Changed default values for Code Climate remediation points
https://github.com/Up2Go/codeclimate-apex/issues/7
2016-05-24 12:24:38 +02:00
David Renz
7c06f288e6 Fixed typo 2016-05-23 16:08:49 +02:00
David Renz
68cf252658 Refactored Code Climate Renderer 2016-05-23 15:53:09 +02:00
David Renz
8f6542263c Added property to rules to disable block highlighting on the Code
Climate Platform
https://github.com/Up2Go/codeclimate-apex/issues/5
2016-05-23 14:49:12 +02:00
David Renz
f9162c345b Deleted unused rulesets 2016-05-23 14:46:22 +02:00
David Renz
179dfa8c71 Fixed message of NcssMethodCount Rule 2016-05-23 12:02:23 +02:00
Andreas Dangel
c885ae9031 travis-ci: set MAVEN_OPTS in ~/.mavenrc
See http://stackoverflow.com/questions/29201549/travis-ci-ignoring-maven-opts
2016-05-21 20:38:49 +02:00
Andreas Dangel
69e0068f04 travis-ci: move maven opts to "before_install" 2016-05-21 20:23:57 +02:00
Andreas Dangel
e522441b7a Try to increase memory for travis-ci 2016-05-21 20:04:12 +02:00
Andreas Dangel
8b0b6f3e4b Merge branch 'Monits-constant-interface' 2016-05-21 12:17:24 +02:00
Andreas Dangel
1eebfc26fa Update changelog 2016-05-21 12:13:09 +02:00
Andreas Dangel
c89d041e5c Merge branch 'constant-interface' of https://github.com/Monits/pmd into Monits-constant-interface 2016-05-21 12:07:12 +02:00
Andreas Dangel
a37854c707 Merge branch 'Up2Go-master' 2016-05-21 12:03:43 +02:00
Andreas Dangel
49f0df8547 Update changelog 2016-05-21 11:58:32 +02:00
Andreas Dangel
b2cfd3ebd5 Revert "Update README.md"
This reverts commit d8fd2450835e10709a5df0ec62d3f890ae10e10f.
2016-05-21 11:56:21 +02:00
Andreas Dangel
2bde467ce1 Revert "Update README.md"
This reverts commit 52fd661785d9e06d774badb7307bcd5d47862ed3.
2016-05-21 11:55:26 +02:00
Andreas Dangel
45ba6e9d49 Merge branch 'master' of https://github.com/Up2Go/pmd into Up2Go-master 2016-05-21 11:51:24 +02:00
Andreas Dangel
38f9d4361b Merge branch 'bug-1484' 2016-05-21 11:45:09 +02:00
Andreas Dangel
a4baf5c2a8 Merge branch 'bug-1484' into pmd/5.4.x 2016-05-21 11:38:18 +02:00
Andreas Dangel
1efdb72ba9 Merge branch 'bug-1484' into pmd/5.3.x 2016-05-21 11:37:28 +02:00
Andreas Dangel
0d20fe7e1c Fixes #1484 UnusedLocalVariable - false positive - parenthesis 2016-05-21 11:37:10 +02:00
Andreas Dangel
8107977e1f Update m-jar-p and m-assembly-p to be java9 ready 2016-05-21 10:04:17 +02:00
Juan Martín Sotuyo Dodero
007f9b3921 Change default to match Effective Java 2016-05-20 17:12:26 -03:00
Juan Martín Sotuyo Dodero
2ec75e7050 Add ConstantsInInterface rule. Effective Java, 19 2016-05-20 16:59:02 -03:00
Andreas Dangel
a244c19a26 Merge branch 'bug-1485' 2016-05-20 21:51:45 +02:00
Andreas Dangel
8ffaffc567 Fixes #1485 Analysis of some apex classes cause a stackoverflow error
Test file must use windows line endings
Fixes Up2Go/pmd#36
2016-05-20 21:51:22 +02:00
Andreas Dangel
501ef71e70 Verify #1485 Analysis of some apex classes cause a stackoverflow error 2016-05-20 20:10:01 +02:00
Andreas Dangel
426427e9f3 javascript: move test files from src/main/resources to src/test/resources 2016-05-20 19:43:44 +02:00
Andreas Dangel
9f40a707e0 Closes #1486 Add rule for no-else-return - New Javascript rule 2016-05-20 19:42:32 +02:00
Andreas Dangel
03d9175cd1 Merge branch 'DevFactory-release/multiple-code-improvements-fix-1' 2016-05-20 19:13:15 +02:00
Andreas Dangel
77fb0c9aea Update changelog 2016-05-20 19:13:00 +02:00
Andreas Dangel
b2db6432e0 Merge branch 'release/multiple-code-improvements-fix-1' of https://github.com/DevFactory/pmd into DevFactory-release/multiple-code-improvements-fix-1 2016-05-20 19:11:14 +02:00
Andreas Dangel
97b3250f44 Merge branch 'dionisioC-master' 2016-05-20 19:06:46 +02:00
Andreas Dangel
7050e84d03 Update changelog 2016-05-20 18:58:25 +02:00
Andreas Dangel
9c21c14a85 Merge branch 'master' of https://github.com/dionisioC/pmd into dionisioC-master 2016-05-20 18:56:18 +02:00
David Renz
169c7ada1a Update README.md 2016-05-20 15:34:06 +02:00
David Renz
52fd661785 Update README.md 2016-05-20 15:30:54 +02:00
David Renz
d8fd245083 Update README.md 2016-05-20 15:30:33 +02:00
David Renz
0cb7987388 Fixed #40 2016-05-20 12:46:06 +02:00
David Renz
4c0ce89afd Improved Markdown output #40 2016-05-19 14:12:22 +02:00
Robert Sösemann
2c023408ed Solved Markdown with line breaks inside of JSON problem 2016-05-18 21:17:31 +02:00
Andreas Dangel
9451ad025c Merge branch 'issue-1360-ruleset-compatibility' 2016-05-18 21:03:17 +02:00
Andreas Dangel
6cd0ca309f Merge branch 'issue-1360-ruleset-compatibility' into pmd/5.4.x 2016-05-18 20:57:53 +02:00
Andreas Dangel
58085e1520 Merge branch 'issue-1360-ruleset-compatibility' into pmd/5.3.x 2016-05-18 20:52:39 +02:00
Andreas Dangel
f32beeb726 Provide a command line option for #1360 - "-noRuleSetCompatibility" 2016-05-18 20:38:44 +02:00
Robert Sösemann
cf61dcc644 Renderer test 2016-05-17 22:17:28 +02:00
Robert Sösemann
2daa7e7773 Added rule information as JSON Body readup 2016-05-17 17:26:47 +02:00
Robert Sösemann
b4a0e07806 Remove line breaks and multi-spaces before passing rule violation
description to JSON
2016-05-17 16:55:16 +02:00
David Renz
11df8fbf40 Fixed #38 2016-05-17 10:44:54 +02:00
Dionisio Cortes Fernandez
511c7778c5 Small code enhancements, basically reordering variable declarations, constructors and variable modifiers 2016-05-15 22:41:26 +02:00
Andreas Dangel
ba18ee705e Merge branch 'issue-1360-ruleset-compatibility' 2016-05-13 19:06:33 +02:00
Andreas Dangel
fadd6a9a1c Merge branch 'issue-1360-ruleset-compatibility' into pmd/5.4.x 2016-05-13 19:02:53 +02:00
Andreas Dangel
1816c1708a Merge branch 'issue-1360-ruleset-compatibility' into pmd/5.3.x 2016-05-13 18:58:39 +02:00
Andreas Dangel
a8a18e6648 Fixes #1360 Provide backwards compatibility for PMD configuration file
Update changelog
2016-05-13 18:58:23 +02:00
Andreas Dangel
1b65c7fe91 References #1360 Provide backwards combatibility for PMD configuration file
Handle exclusions
2016-05-13 18:53:00 +02:00
Andreas Dangel
44ee51d5a6 References #1360 Provide backwards combatibility for PMD configuration file
Add test cases for excluded rules
2016-05-06 11:08:25 +02:00
Andreas Dangel
15fd444b7a References #1360 Provide backwards combatibility for PMD configuration file 2016-05-06 10:52:43 +02:00
Andreas Dangel
bab3e965ff Fixes #1478 PMD CLI - Use first language as default if Java is not available 2016-05-05 19:59:06 +02:00
Andreas Dangel
642c47ab48 Merge branch 'pr-90' 2016-05-05 19:11:15 +02:00
Andreas Dangel
4405312c1b Refactor PMDTaskTest in java, too using BuildFileRule 2016-05-05 19:06:31 +02:00
Andreas Dangel
334cd5e0f5 Update changelog 2016-05-05 19:06:05 +02:00
George Kankava
ae078e7252 multiple code improvements: squid:S1192, squid:S1118, squid:S1066, squid:S1854, squid:S2864 2016-05-05 09:47:50 +04:00
Dionisio
9ab1b23a5a Refactored two test to spot using the deprecated ant class BuildFileTest 2016-05-02 22:46:19 +02:00
Andreas Dangel
5e073d3bbf Merge branch 'dionisioC-master' 2016-05-01 14:18:21 +02:00
Andreas Dangel
0d075bc57f Update changelog 2016-05-01 13:49:08 +02:00
Andreas Dangel
be8da01858 Merge branch 'master' of https://github.com/dionisioC/pmd into dionisioC-master 2016-05-01 13:47:45 +02:00
Andreas Dangel
69f3893b86 Update checkstyle configuration 2016-05-01 11:54:01 +02:00
Andreas Dangel
344ec44bd4 travis: increase memory 2016-05-01 10:11:24 +02:00
Andreas Dangel
f8473d9d15 Merge branch 'pmd/5.3.x' 2016-05-01 00:05:40 +02:00
Andreas Dangel
07be0d640f Merge branch 'pmd/5.3.x' into pmd/5.4.x 2016-05-01 00:03:53 +02:00
Andreas Dangel
147662e035 Prepare next development version 2016-04-30 23:54:24 +02:00
Dionisio
a69cfa2223 Changing tabs for spaces so the code dones't look awkward 2016-04-30 23:27:50 +02:00
Dionisio
5be8148e99 Some code enhancements:
PMD.java. splited the imports to avoid check style message: Using the '.*' form of import should be avoided - net.sourceforge.pmd.lang.*.
AbstractNodeInfo now has all the overrides
String utils now has the EMPTY_STRING variable declared as private and a getter method to access it. Refactored isSame to avoid using     @SuppressWarnings("PMD.CompareObjectsWithEquals")
DFAPanel uses the getter for empty strings. Also deleted comments that seems to be old code and addd the override to valueChanged
In DBMSMetadadataTest we were passing a parameter to  System.out.format but it hasn't the place holder for the parameter
2016-04-30 23:21:43 +02:00
Andreas Dangel
2afd30c283 [maven-release-plugin] prepare for next development iteration 2016-04-30 23:15:13 +02:00
Andreas Dangel
d89549f994 [maven-release-plugin] prepare release pmd_releases/5.3.7 2016-04-30 23:15:13 +02:00
Andreas Dangel
8b8bb6d504 Fix site generation 2016-04-30 23:03:14 +02:00
Andreas Dangel
ef6bb6ed53 Prepare pmd release 5.3.7 2016-04-30 22:03:24 +02:00
Andreas Dangel
d6a06716e0 Merge branch 'bug-1470' 2016-04-30 19:27:59 +02:00
Andreas Dangel
ad6ae9edb6 Merge branch 'bug-1470' into pmd/5.4.x 2016-04-30 19:23:47 +02:00
Andreas Dangel
7d053d41c2 Merge branch 'bug-1470' into pmd/5.3.x 2016-04-30 19:18:08 +02:00
Andreas Dangel
81378fe8ed Fixes #1470 Error with type-bound lambda 2016-04-30 19:14:46 +02:00
Andreas Dangel
156963d568 Merge branch 'bug-1475' 2016-04-30 18:43:31 +02:00
Andreas Dangel
7ee8e28484 Merge branch 'bug-1475' into pmd/5.4.x 2016-04-30 18:40:02 +02:00
Andreas Dangel
ce8c4bf1a8 Merge branch 'bug-1475' into pmd/5.3.x 2016-04-30 18:36:44 +02:00
Andreas Dangel
325fcaf5e4 Fixes #1475 False positive of MethodReturnsInternalArray 2016-04-30 18:33:39 +02:00
Andreas Dangel
cd6e3851d9 Merge branch 'bug-1476' 2016-04-30 12:33:07 +02:00
Andreas Dangel
316a8aa782 Merge branch 'bug-1476' into pmd/5.4.x 2016-04-30 12:12:18 +02:00
Andreas Dangel
361370db5d Merge branch 'bug-1476' into pmd/5.3.x 2016-04-30 12:00:09 +02:00
Andreas Dangel
b9b0059797 Fixes #1476 False positive of ArrayIsStoredDirectly 2016-04-30 11:46:29 +02:00
Andreas Dangel
9a4dd27d59 Merge branch 'pr-88' 2016-04-29 11:42:53 +02:00
Andreas Dangel
d1000ed0d0 Fix unit test - wsdl has no rulesets yet 2016-04-29 11:38:47 +02:00
Andreas Dangel
0c02da8313 Fix compile errors - commons-lang3 should be used 2016-04-29 11:32:31 +02:00
Andreas Dangel
d8645dc0fc Update changelog 2016-04-29 11:28:10 +02:00
Andreas Dangel
e2cc7e3dd6 Merge branch 'master' of https://github.com/Up2Go/pmd into pr-88 2016-04-29 11:27:15 +02:00
Andreas Dangel
9579832856 Add unit test for loading and parsing the rulesets 2016-04-29 11:22:46 +02:00
Robert Sösemann
130f05cffd Moved special handling code from model into renderer class 2016-04-28 21:18:19 +02:00
David Renz
dfe2cc0ef5 Fixed the CodeClimate renderer - Cut off the "/Code/" working directory
of CodeClimate engines in order to get the relative path.
2016-04-28 18:51:38 +02:00
David Renz
fe5e6921dd Fixed typo in ruleset.xml 2016-04-28 17:11:57 +02:00
Andreas Dangel
cead3d3a9b Add MAVEN_OPTS="-Xmx500m" for travis-ci 2016-04-23 21:10:53 +02:00
Andreas Dangel
a00e4d439e Merge branch 'bug-1471' 2016-04-23 19:54:52 +02:00
Andreas Dangel
edd0eeb9c8 Merge branch 'bug-1471' into pmd/5.4.x 2016-04-23 19:50:22 +02:00
Andreas Dangel
baad0f2abe Merge branch 'bug-1471' into pmd/5.3.x 2016-04-23 19:46:07 +02:00
Andreas Dangel
176cc2344d Fix NPEs 2016-04-23 19:43:13 +02:00
Andreas Dangel
cb5ac3086e Fixes #1471 False positives for DoubleCheckedLocking 2016-04-23 19:34:32 +02:00
Andreas Dangel
d1419f6b77 pom: Add a language module for Maven POM 2016-04-23 18:40:11 +02:00
Andreas Dangel
975d276f28 documentation: mention Perl and Swift in readme 2016-04-23 18:35:50 +02:00
Andreas Dangel
7460723660 documentation: new java and apex rules 2016-04-23 18:30:57 +02:00
Andreas Dangel
ec8d1d9d31 documentation: mention java 7 / java 8 requirement 2016-04-23 18:30:13 +02:00
Andreas Dangel
2e008e4e26 Describe how to build the maven site 2016-04-23 13:29:59 +02:00
Andreas Dangel
06bf6e8cf8 Fix empty ruleset files 2016-04-23 13:27:57 +02:00
Andreas Dangel
8bd37d0033 Merge branch 'pr87' 2016-04-23 11:44:40 +02:00
Andreas Dangel
33983b3358 Refactor code climate categories to be a EnumeratedMultiProperty as
this is not a free text string property - only specific values
are supported
2016-04-23 11:43:48 +02:00
Andreas Dangel
040fa1d7d8 Update changelog 2016-04-23 11:37:45 +02:00
Andreas Dangel
78470b909f Merge branch 'master' of https://github.com/Up2Go/pmd into pr87 2016-04-23 11:16:08 +02:00
Robert Sösemann
3ed2b3bced Added Code Climate pass through properties to ruleset.xml 2016-04-19 15:59:44 +02:00
Robert Sösemann
021c92d9a9 Fixed #35 2016-04-19 15:39:14 +02:00
David Renz
25f5399d15 #33 Changed the default values, matching our default ruleset 2016-04-19 11:52:07 +02:00
Robert Sösemann
9d5598e63a Fixed Code Climate renderer test 2016-04-18 15:39:46 +02:00
Andreas Dangel
109d8d1384 travis: deploy the java8 build from now on 2016-04-17 20:00:05 +02:00
Andreas Dangel
487ac7d509 Make PMD Language modules comparable and provide a default implementation 2016-04-17 19:42:00 +02:00
Andreas Dangel
7af7522d11 apex: remove unnecessary dependencies, just use antlr-runtime 2016-04-17 10:02:11 +02:00
Robert Sösemann
c50fd060ed 1) Renamed CodeClimate specific properties to better be recognizable as
CodeClimate specific
2) Added Code Climate categegories pass through property to not depend
on our current ruleset name = category solution
2016-04-16 20:25:20 +02:00
Robert Sösemann
2da0108306 Added CodeClimateRule to enhance Apex rules with pass through properties
needed for a sensible Code Climate output (currently only a multiplier
for their remediation_point default min value of 50.000)
2016-04-15 23:03:13 +02:00
David Renz
67daf44dcd Improved Code Climate Renderer
JSON report now indicates the proper category
2016-04-15 17:49:08 +02:00
David Renz
b303f27554 Changed all rule categories according to the categories of the Code
Climate Spec https://github.com/codeclimate/spec/blob/master/SPEC.md
2016-04-15 17:30:14 +02:00
David Renz
f53f6594de Formatting and minor changes 2016-04-15 15:58:35 +02:00
David Renz
116e66bfd9 Formatting and minor changes 2016-04-15 15:45:03 +02:00
David Renz
1a27678a31 Added .trigger to supported extensions 2016-04-15 15:31:00 +02:00
David Renz
1f563c4841 Adapted the ruleset.xml 2016-04-15 15:14:38 +02:00
Andreas Dangel
839a874157 Fix LanguageVersionTest for Java, add for Apex 2016-04-13 21:13:15 +02:00
Andreas Dangel
334ae8b9ba Fix missing rulesets.properties file for wsdl 2016-04-11 22:18:10 +02:00
Andreas Dangel
c655dc72fd site generation - use java8 in order to be able to generate javadoc
for the modules which use java8
2016-04-11 21:05:11 +02:00
Andreas Dangel
e215d372ef xml: use source code positioner from pmd-core 2016-04-11 20:24:43 +02:00
Andreas Dangel
66e533c212 Merge branch 'Up2Go-master' 2016-04-10 17:37:20 +02:00
Andreas Dangel
e55ac168dd Update changelog 2016-04-10 17:36:52 +02:00
Andreas Dangel
b230d4eebc Merge branch 'master' of https://github.com/Up2Go/pmd into Up2Go-master 2016-04-10 17:18:42 +02:00
Andreas Dangel
2df3db7b6b Merge branch 'toolchains' 2016-04-10 17:05:18 +02:00
Andreas Dangel
8c7f093a41 Merge branch 'toolchains' into pmd/5.4.x 2016-04-10 17:04:49 +02:00
Andreas Dangel
803d35005a Merge branch 'toolchains' into pmd/5.3.x 2016-04-10 17:03:40 +02:00
Andreas Dangel
6fc617bd11 Java version is now handled by toolchain 2016-04-10 17:03:30 +02:00
Andreas Dangel
6be8547f3e Add maven toolchains 2016-04-10 16:55:25 +02:00
Andreas Dangel
b0773c8614 Restore accidently changed lines 2016-04-09 20:46:49 +02:00
Andreas Dangel
b0a0cf66b6 Add link to apex reference documentation 2016-04-09 19:47:23 +02:00
Andreas Dangel
40bf24bced Provide a warning and do not fail, if java7 is used 2016-04-09 19:45:55 +02:00
Andreas Dangel
bb5d5720fd Fix duplicate dependency in pmd-dist 2016-04-09 18:59:31 +02:00
Andreas Dangel
8bec393cf8 Use the source code position from core in javascript 2016-04-09 18:57:56 +02:00
Andreas Dangel
380fdcab54 Add missing license headers 2016-04-09 18:54:46 +02:00
Andreas Dangel
365b403005 Using now startIndex and endIndex of the location. Works for most cases.
Only exceptions are:
*   Methods: the end is determined by the contained block statement
*   Root nodes: the end is just the end of the whole source file

Uses the source code position from the javascript module.


Fixes Up2Go/pmd#30
2016-04-09 18:46:46 +02:00
Robert Sösemann
3ae9b489a0 Merge branch 'master' of https://github.com/Up2Go/pmd.git 2016-04-08 17:51:39 +02:00
Robert Sösemann
68bad8ae6a Fixed typos 2016-04-08 17:47:24 +02:00
David Renz
2c9c5a4e54 Fixed AvoidDeeplyNestedIfStmtsRule 2016-04-08 17:31:40 +02:00
Robert Sösemann
18bc0dfe94 Ignore test classes 2016-04-08 17:13:50 +02:00
Robert Sösemann
591da4f364 Added two more Salesforce.com specific rules AvoidGlobalModifier and
AvoidLogicInTrigger
2016-04-08 17:01:45 +02:00
Robert Sösemann
243f1928b7 Added Ncss rules 2016-04-08 15:15:09 +02:00
Robert Sösemann
9e6b25ce7f Added Ncss Rules 2016-04-08 15:11:06 +02:00
David Renz
4bbcdfdb49 Fixed ExcessiveParameterListRule 2016-04-08 14:09:32 +02:00
David Renz
1d3e3d2989 Restored ExcessiveClassLengthRule and formatted test code 2016-04-08 11:52:50 +02:00
Robert Sösemann
b624880ff5 Replace Length methods with (still failing) Ncss rules 2016-04-08 00:42:11 +02:00
Robert M und David R
fafc3a2470 Added regression test for #30 2016-04-07 22:32:57 +02:00
David Renz
c6b31a8cfe Fixed #29 2016-04-07 17:26:54 +02:00
David Renz
da9c5c5f77 Added test #29 2016-04-07 17:00:34 +02:00
David Renz
6b72013429 Added test #23 2016-04-07 16:15:11 +02:00
Robert Sösemann
5e9df4a446 Improved accuracy of UserClass startLine by not returning the LOC of the
UserClass but its first ModifierNode child.
2016-04-07 13:17:57 +02:00
Robert M und David R
e8686552e7 Fixed #26 2016-04-06 21:56:46 +02:00
David Renz
dc7c36f65c Added test #26 2016-04-06 18:11:49 +02:00
Robert Sösemann
747eb9b509 Fixed #25 2016-04-06 17:01:08 +02:00
Robert Sösemann
1dc61fe071 Auto-Format classes 2016-04-06 15:17:08 +02:00
Robert Sösemann
f926a6d7cc Added class and method length dependant rules 2016-04-06 15:14:16 +02:00
David Renz
236ccecfb8 VariableNamingConvetionRule now can handle exception classes 2016-04-06 14:37:59 +02:00
David Renz
5ff244fb70 Removed some console output 2016-04-06 14:00:08 +02:00
David Renz
c970180626 Fixed ruleset.xml 2016-04-06 12:09:50 +02:00
@rsoese (Twitter handle)
d70e2b16ab Added Apex to Readme 2016-04-06 09:59:34 +02:00
Robert Sösemann
e28183b1cf Added default version so CLI won't fail with Nullpointer 2016-04-04 12:02:06 +02:00
Robert M und David R
9f0071893e Remove "unused rules" as they are to hard to finalize before the planned
pull request
2016-04-03 15:58:42 +02:00
Robert M und David R
37cf87dc4c Fixed Naming tests 2016-04-03 15:46:32 +02:00
Andreas Dangel
0cc065e682 Add a local maven repo to avoid using system scope dependencies 2016-04-02 12:26:20 +02:00
Andreas Dangel
9a5b2a7dbd Add Modifiers information (public, private, ...) 2016-04-02 12:06:37 +02:00
Andreas Dangel
46c24f3a85 Improve node position beginLine. RootNodes are handled special, they
cover the full source code. Other nodes go from their start until the start
of the next sibling.
ModifierNodes not very accurate, but Methods look quiet good now.

References #14 (https://github.com/Up2Go/pmd/issues/14)
2016-04-02 12:05:57 +02:00
Andreas Dangel
b71b95c3ba Merge branch 'bug-1458' 2016-04-01 21:44:51 +02:00
Andreas Dangel
bc902cee19 Merge branch 'bug-1467' 2016-04-01 21:43:54 +02:00
Andreas Dangel
a2c344fb54 Merge branch 'bug-1458' into pmd/5.4.x 2016-04-01 21:32:37 +02:00
Andreas Dangel
c5691ecf35 Merge branch 'bug-1467' into pmd/5.4.x 2016-04-01 21:30:45 +02:00
Andreas Dangel
93227d1372 Merge branch 'bug-1458' into pmd/5.3.x 2016-04-01 21:08:40 +02:00
Andreas Dangel
5f9114a02a Merge branch 'bug-1467' into pmd/5.3.x 2016-04-01 21:08:20 +02:00
Andreas Dangel
494719d8ea Fixes #1458 Performance degradation scanning large XML files with XPath custom rules 2016-04-01 20:52:38 +02:00
Andreas Dangel
3d84e3af74 Fixes #1467 UseUtilityClass can't correctly check functions with multiple annotations 2016-04-01 19:04:53 +02:00
David Renz
74b922af35 Fixed ExcessiveParameterListRule 2016-04-01 17:21:44 +02:00
Robert Sösemann
d22bfe7b70 Temporarilly removed length rules due to issue #14 2016-04-01 17:10:55 +02:00
David Renz
cdb52e23b3 Fixed ExcessivePublicCountRule and some minor changes 2016-04-01 16:45:52 +02:00
David Renz
1fbfdf3842 Added ExcessivePublicCountRule 2016-04-01 13:33:32 +02:00
David Renz
1b1f3454d7 Removed NcssCountRules and NPathComplexityRule 2016-04-01 12:02:12 +02:00
David Renz
4593909dcc Fixed StdCyclomaticComplexityRule 2016-04-01 11:42:40 +02:00
Robert Sösemann
8f7ad9c1ab Added Unused code port (don't compile) 2016-03-31 17:18:18 +02:00
Robert Sösemann
ecd7fbc59d Merge branch 'master' of https://github.com/Up2Go/pmd.git
Conflicts:
	pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitorAdapter.java
	pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRule.java
2016-03-31 17:13:21 +02:00
Robert Sösemann
2acbc44b0a . 2016-03-31 17:08:31 +02:00
Robert Sösemann
b22274c972 Fixed Naming Rules 2016-03-31 17:05:43 +02:00
David Renz
44dbe2283c Merge branch 'master' of https://github.com/Up2Go/pmd.git 2016-03-31 14:53:27 +02:00
David Renz
6458f90d23 small rule improvements 2016-03-31 14:52:44 +02:00
Robert Sösemann
e3da2619dd CDP is also running for Apex (CLI and GUI) 2016-03-31 14:50:31 +02:00
Robert Sösemann
b77fef6338 Ported very useful AvoidDeeplyNestedIfStmtsRule 2016-03-31 11:17:36 +02:00
Robert Sösemann
9069f53a23 Added PMD configuration file which will be the default used by the
CodeClimate engine if the user src doesn't contain an overriding file
2016-03-31 09:49:47 +02:00
Robert Sösemann
83931857e3 Fixed https://github.com/Up2Go/pmd/issues/16 2016-03-30 10:52:50 +02:00
Andreas Dangel
220c3f3618 Fix version of new swift module 2016-03-29 20:18:40 +02:00
Andreas Dangel
1e957080eb Merge branch 'pr-33' 2016-03-29 20:18:30 +02:00
Andreas Dangel
1e146d0e1d Fix version of swift module 2016-03-29 20:11:31 +02:00
Andreas Dangel
395a40a7ae Merge branch 'pr-33' into pmd/5.4.x 2016-03-29 20:06:23 +02:00
Andreas Dangel
cbde6f48ea Merge branch 'pr-33' into pmd/5.3.x 2016-03-29 20:01:12 +02:00
Andreas Dangel
c3f98356f8 Move antlr dependency definitions up into parent pom 2016-03-29 19:49:04 +02:00
Andreas Dangel
ccd0badd4a Update changelog and docu to add swift 2016-03-29 19:44:50 +02:00
Andreas Dangel
2ce28f0ae3 Merge branch 'tiobe/add_swift_language' of https://github.com/tiobe/pmd into pr-33 2016-03-29 19:21:17 +02:00
David Renz
62aaf95e11 Fixed MethodNamingConventionsRule (isOverriddenMethod) 2016-03-29 17:14:54 +02:00
David Renz
0b81c72f40 Changed root node from (AST)UserClass to (AST)Compilation 2016-03-29 16:18:01 +02:00
David Renz
98899afca1 Added missing notes to AbstractApexRule 2016-03-29 11:48:36 +02:00
David Renz
ce2b823193 Added missing notes to visitor 2016-03-29 11:34:54 +02:00
Robert Sösemann
cef6824f78 Added Apex test class for parser test 2016-03-29 10:54:12 +02:00
Robert Sösemann
995e500eb4 Small improvements 2016-03-28 13:44:18 +02:00
Robert Sösemann
523dcc8fe0 Started porting naming rules 2016-03-28 00:39:13 +02:00
Andreas Dangel
26c9d95cfa Return a fixed linenumber/column until we figure out a reliable way
to determine the position of the node in the source code
2016-03-27 17:37:48 +02:00
Andreas Dangel
acacf1906e Fix unit tests of AvoidSoqlInLoopsRule 2016-03-27 17:24:42 +02:00
Andreas Dangel
aad2059731 Fix visitor - the jjtAccept methods have to be in the
concrete subclasses
2016-03-27 17:14:26 +02:00
Andreas Dangel
87c85c8aff Fix compile errors 2016-03-27 15:54:27 +02:00
Robert M und David R
eb5491378a Merge branch 'master' of https://github.com/Up2Go/pmd.git 2016-03-25 22:48:19 +01:00
Robert M und David R
7be1510a65 Started working on first non-Java rule: AvoidSoqlInLoopsRule 2016-03-25 22:48:05 +01:00
David Renz
50c47371cc Fixed cyclomatic complexity rule 2016-03-24 15:36:13 +01:00
Robert Sösemann
01be142231 Added Cyclomatic complexity rules 2016-03-24 11:40:54 +01:00
Robert M und David R
1748a072a1 Focus on porting codesize test from java to apex 2016-03-23 23:58:32 +01:00
Robert Sösemann
ebab8d0edb Next step towards real world rules 2016-03-23 16:20:08 +01:00
David Renz
9c6c3af8cc Added missing notes 2016-03-23 15:27:18 +01:00
@rsoese (Twitter handle)
e648ab4b74 Update README.md 2016-03-23 15:01:37 +01:00
Robert Sösemann
a48224bf01 Added ported code size tests 2016-03-23 10:53:26 +01:00
Robert Sösemann
ea5f7017a6 Fixed imports 2016-03-23 10:29:40 +01:00
Robert Sösemann
00e3d9edc2 Renamed 2016-03-23 09:58:22 +01:00
Robert Sösemann
ff62b2545c Added some codesize rules (with compile errors) 2016-03-23 09:54:47 +01:00
Robert Sösemann
c310c51ea0 Forgot to push 2016-03-22 15:53:42 +01:00
Robert Sösemann
3bf1495cc2 Added minimal nodes but real life code doesn't parse yet 2016-03-22 09:40:19 +01:00
Andreas Dangel
202230e1db Fix unit test 2016-03-21 21:23:24 +01:00
Andreas Dangel
ce3727e10a Revert "Fix compilation - remove the deleted projects - only keep apex"
This reverts commit 9faf05bfcb37724894e7b3833b4d7473e093679b.

This adds back all the modules in the main pom.xml. Note: apex is only
active for java8 builds
2016-03-21 21:01:39 +01:00
Andreas Dangel
e240a024d6 Revert "Next step towards compile ;-)" so that we don't loose
cs, fortran, go, jsp, matlab, php, plsql, python, scala, ui, vm, xml ;)

This reverts commit 89fcd45f75f79f5f223e4f572ef332f75869dcef.

The apex files have not been reverted.
2016-03-21 20:57:34 +01:00
Robert Sösemann
378c903e9c I guess we need more AST nodes to make parsing of real world classes
work ;-)
2016-03-21 17:18:09 +01:00
Robert Sösemann
18da883596 . 2016-03-21 16:56:05 +01:00
Robert Sösemann
03e61f1684 Format source code 2016-03-21 11:58:24 +01:00
Robert Sösemann
03f10491bf Added basic rule 2016-03-21 11:06:59 +01:00
@rsoese (Twitter handle)
e5c9107c7e Merge pull request #7 from adangel/pmd-apex-pr-1
Apex Parser / Tree Builder
2016-03-20 14:39:25 +01:00
Andreas Dangel
7e609e074e Try to determine position of nodes 2016-03-20 12:24:21 +01:00
Andreas Dangel
2d119a225d Fix test - we have actually 5 methods: 2 in source code, 3 generated by compiler 2016-03-20 12:23:57 +01:00
Andreas Dangel
620c2009e1 Determine name of UserClass and Method 2016-03-20 12:23:20 +01:00
Andreas Dangel
59414f9e5b Add a dump facade to print out the AST tree 2016-03-20 12:22:33 +01:00
Andreas Dangel
d2b182f280 Add java as a dependency for designer - add designer profile
The designer can be started within "pmd-apex" by running

    mvn -P designer exec:java
2016-03-20 11:35:38 +01:00
Andreas Dangel
1a46ef9b05 Make the one apex version the default version 2016-03-20 11:29:09 +01:00
Andreas Dangel
9faf05bfcb Fix compilation - remove the deleted projects - only keep apex 2016-03-20 11:21:50 +01:00
Andreas Dangel
4221e7a00a Add a version for the apex language module 2016-03-20 11:18:20 +01:00
Andreas Dangel
294ae0de92 Mark UserClass as root node, so that XPath rules will work 2016-03-20 11:16:11 +01:00
Andreas Dangel
efbe99b0d2 Add missing AST nodes to be able to parse the samples 2016-03-20 11:15:39 +01:00
Andreas Dangel
d739f11ff4 Implement the apex visitor methods 2016-03-20 11:14:38 +01:00
Andreas Dangel
27fa89a3cb Call traverse on the Apex nodes with an scope (it is required) 2016-03-20 11:14:11 +01:00
Andreas Dangel
50fac3a5cf Make sure, we fail early if we can't parse the code 2016-03-20 11:11:24 +01:00
Andreas Dangel
3d63f1a8bd Add two code samples 2016-03-20 11:11:07 +01:00
Andreas Dangel
4df5999f6b Fix syntax error in code sample 2016-03-20 11:10:37 +01:00
Robert Sösemann
4f0ed30250 Removed jars that are now managed via maven 2016-03-15 16:48:59 +01:00
Robert Sösemann
ea1eca0080 Added dependency entries for each Salesforce lib 2016-03-15 15:06:34 +01:00
Robert Sösemann
e9bfefbbc1 Moved test class to correct package 2016-03-15 11:29:03 +01:00
Robert M und David R
a144493516 Added minimal failing test 2016-03-15 00:46:47 +01:00
Robert M und David R
ba9c8fc1b8 Removed sample code 2016-03-14 20:43:09 +01:00
Robert Sösemann
42273034c7 First simple ast node adapter 2016-03-14 16:37:12 +01:00
Robert Sösemann
bb0302a6e7 Next step towards compile ;-) 2016-03-14 16:15:19 +01:00
Robert Sösemann
89fcd45f75 Next step towards compile ;-) 2016-03-14 12:49:30 +01:00
@rsoese (Twitter handle)
4e75f57bdf Added Apex module 2016-03-14 09:54:14 +01:00
Andreas Dangel
c9ff12785a Merge branch 'bug-1461-doc' 2016-03-13 15:29:16 +01:00
Andreas Dangel
e58feea9cd Merge branch 'bug-1461-doc' into pmd/5.4.x 2016-03-13 15:29:10 +01:00
Andreas Dangel
c571abdb1d Merge branch 'bug-1461-doc' into pmd/5.3.x 2016-03-13 15:28:58 +01:00
Andreas Dangel
0725586b9a Update documentation about thread safety of rules (see #1461) 2016-03-13 15:28:37 +01:00
Robert Sösemann
9e1e5b21db Renamed cloned Ecmascript module classes and merged in Jorje libs
DOESN'T COMPILE
2016-03-12 23:58:04 +01:00
David Renz
b82b641927 Added an Apex module (pmd-apex) 2016-03-11 13:30:05 +01:00
Andreas Dangel
3dd8156014 Merge branch 'bug-1461' into pmd/5.4.x 2016-03-10 20:23:43 +01:00
Andreas Dangel
ccbb372a4f Fix compile error (pmd 5.3.x is on java6) 2016-03-10 20:19:30 +01:00
Andreas Dangel
be51afc2b4 Merge branch 'bug-1461' into pmd/5.3.x 2016-03-10 20:18:58 +01:00
Andreas Dangel
baf4a9c7f5 Merge branch 'bug-1461' 2016-03-10 20:16:26 +01:00
Andreas Dangel
5f9e90761d Fixes #1461 Possible threading issue due to PR#75
Update changelog
2016-03-10 20:12:13 +01:00
Andreas Dangel
4a0802a269 Revert "RuleSetFactory Performance Enhancement:-"
This reverts commit 9da51952efb1671d664b20ffb3d49506e34d0818.
2016-03-10 20:11:06 +01:00
Andreas Dangel
3de70426cf Revert "Update changelog, keep backwards compatible createRuleSets methods by overloading"
This reverts commit b753cc5ec5d2240e907b60f78925f78c2f682bf5.
2016-03-10 20:10:58 +01:00
Andreas Dangel
54ce3036b2 Add unit test to verify concurrency issue #1461
References pr #75
2016-03-10 20:10:51 +01:00
Jan van Nunen
92678c0c0a Added support for Swift to CPD.
The tokenizer uses the ANTLR4 grammar of the Tailor static analyzer for
Swift. (https://github.com/sleekbyte/tailor)
2016-03-02 11:11:02 +01:00
Andreas Dangel
ee131a3553 Merge branch 'bug-1464' 2016-02-28 15:13:10 +01:00
Andreas Dangel
3d58d913a7 Merge branch 'bug-1464' into pmd/5.4.x 2016-02-28 15:12:30 +01:00
Andreas Dangel
1726c33c19 Merge branch 'bug-1464' into pmd/5.3.x 2016-02-28 15:12:22 +01:00
Andreas Dangel
573186be69 fixes #1464 UnnecessaryFinalModifier false positive on a @SafeVarargs method 2016-02-28 14:22:04 +01:00
Andreas Dangel
1402e9320b Merge branch 'pr-85'
Closes #85
Note: pr-85 has been rebased onto pmd/5.3.x
2016-02-28 14:06:29 +01:00
Andreas Dangel
a81de955c6 Merge branch 'pr-85' into pmd/5.4.x
Closes #85
Note: pr-85 has been rebased onto pmd/5.3.x
2016-02-28 14:05:29 +01:00
Andreas Dangel
090636e2db Merge branch 'pr-85' into pmd/5.3.x
Closes #85
Note: pr-85 has been rebased onto pmd/5.3.x
2016-02-28 14:04:57 +01:00
Andreas Dangel
fc35a162d9 Update changelog, whitespaces, improve test case 2016-02-28 14:01:32 +01:00
albfernandez
08fb59180d remove trailing spaces 2016-02-28 13:07:03 +01:00
albfernandez
40bf82244f Fix the fix for #1340 2016-02-28 13:07:03 +01:00
albfernandez
3c0516b86f Fix #1340 UseStringBufferForStringAppends False Positive with ternary
operator (used both in condition and options)
2016-02-28 13:07:03 +01:00
Andreas Dangel
f9c6b0b08d Merge branch 'bug-1465' 2016-02-27 19:38:39 +01:00
Andreas Dangel
15a82f0ddb Merge branch 'bug-1465' into pmd/5.4.x 2016-02-27 19:37:39 +01:00
Andreas Dangel
32cc07d7cb Merge branch 'bug-1465' into pmd/5.3.x 2016-02-27 19:37:29 +01:00
Andreas Dangel
1c08f94691 fixes #1465 False Positve UnusedImports with javadoc @link 2016-02-27 19:30:16 +01:00
Andreas Dangel
fede0e28fb Merge branch 'tiobe-tiobe/fix_UTF8_escape_in_OBJC_string_literals' 2016-02-24 21:54:35 +01:00
Andreas Dangel
6dbcf77953 Merge branch 'tiobe-tiobe/fix_UTF8_escape_in_OBJC_string_literals' into pmd/5.4.x 2016-02-24 21:53:36 +01:00
Andreas Dangel
aab525196c Merge branch 'tiobe-tiobe/fix_UTF8_escape_in_OBJC_string_literals' into pmd/5.3.x 2016-02-24 21:53:16 +01:00
Andreas Dangel
518f1eff6d Update changelog 2016-02-24 21:48:41 +01:00
Andreas Dangel
62e71035d9 Upgrade maven-pmd-plugin 2016-02-24 21:38:26 +01:00
Jan van Nunen
7915f08bc9 Extended Objective-C grammar to accept UTF-8 escapes (\uXXXX) in string literals. 2016-02-18 13:40:32 +01:00
Andreas Dangel
7f273da019 Merge branch 'bug-1457' 2016-02-07 12:39:33 +01:00
Andreas Dangel
873b28dd1d Merge branch 'bug-1457' into pmd/5.4.x 2016-02-07 12:38:29 +01:00
Andreas Dangel
84cfa37b94 Merge branch 'bug-1457' into pmd/5.3.x 2016-02-07 12:32:02 +01:00
Andreas Dangel
079ffeb4df fixes #1457 TooManyMethods counts inner class methods 2016-02-07 12:31:49 +01:00
Andreas Dangel
a26564a5f6 Merge branch 'bug-1456' 2016-02-07 12:16:58 +01:00
Andreas Dangel
84a20e2082 Merge branch 'bug-1456' into pmd/5.4.x 2016-02-07 12:15:35 +01:00
Andreas Dangel
6509f78448 Merge branch 'bug-1456' into pmd/5.3.x 2016-02-07 12:03:44 +01:00
Andreas Dangel
89ffb56e4e fixes #1456 UnusedFormalParameter should ignore overriding methods 2016-02-07 12:03:30 +01:00
Andreas Dangel
c4b50e7e3c Merge branch 'bug-1424' 2016-02-01 22:15:52 +01:00
Andreas Dangel
df70bc4578 Merge branch 'bug-1424' into pmd/5.4.x 2016-02-01 22:14:49 +01:00
Andreas Dangel
cfaaf2f52a fixes #1424 False positive with ternary operator 2016-02-01 22:10:38 +01:00
Andreas Dangel
cf71f252a5 Merge branch 'bug-1453' 2016-01-28 22:29:59 +01:00
Andreas Dangel
62da34ccce Merge branch 'bug-1453' into pmd/5.4.x 2016-01-28 22:29:13 +01:00
Andreas Dangel
dc7762b910 Merge branch 'bug-1453' into pmd/5.3.x 2016-01-28 22:24:57 +01:00
Andreas Dangel
b9f8f2d4fb fixes #1453 Test Class Without Test Cases gives false positive 2016-01-28 22:24:34 +01:00
Andreas Dangel
eefba9dcc6 java-unnecessary/UselessParentheses - add another test for
http://stackoverflow.com/questions/34911230/pmd-uselessparentheses-violation
2016-01-28 22:10:21 +01:00
Andreas Dangel
de0608656b Merge branch 'Monits-emptymethodabstractmessage' 2016-01-28 21:49:31 +01:00
Andreas Dangel
c85000b065 Update changelog 2016-01-28 21:48:40 +01:00
Andreas Dangel
56f21cf325 Merge branch 'emptymethodabstractmessage' of https://github.com/Monits/pmd into Monits-emptymethodabstractmessage 2016-01-28 21:47:56 +01:00
Andreas Dangel
7864c139f5 Merge branch 'bug-1455' 2016-01-25 10:41:10 +01:00
Andreas Dangel
d4c4ab4e7e Merge branch 'bug-1455' into pmd/5.4.x 2016-01-25 10:36:34 +01:00
Andreas Dangel
80c10534b3 Merge branch 'bug-1455' into pmd/5.3.x 2016-01-25 10:32:50 +01:00
Andreas Dangel
e6f5380719 fixes #1455 PMD doesn't handle Java 8 explicit receiver parameters
Those parameters are correctly parsed now and can be found
with "//FormalParameter[@ExplicitReceiverParameter='true']"
2016-01-25 10:29:00 +01:00
Andreas Dangel
5d7ea7d6aa Merge branch 'bug-1449' 2016-01-24 17:40:35 +01:00
Andreas Dangel
55685046ac Merge branch 'bug-1449' into pmd/5.4.x 2016-01-24 17:33:28 +01:00
Andreas Dangel
e4438ff8a2 Merge branch 'bug-1449' into pmd/5.3.x 2016-01-24 17:29:22 +01:00
Andreas Dangel
44a8c0defe fixes #1449 false positive when casting a variable to short 2016-01-24 17:18:50 +01:00
Andreas Dangel
e52be14980 Merge branch 'pr-31' 2016-01-21 20:37:53 +01:00
Andreas Dangel
a42cb1b0c2 Merge branch 'pr-31' into pmd/5.4.x 2016-01-21 20:30:39 +01:00
Andreas Dangel
314ae4414b Merge branch 'pr-31' into pmd/5.3.x 2016-01-21 20:23:22 +01:00
Andreas Dangel
04527bc4cb Update changelog 2016-01-21 20:23:02 +01:00
Andreas Dangel
82178809fa Merge branch 'detect_file_encoding_using_UTF_BOM' of https://github.com/tiobe/pmd into pr-31 2016-01-21 20:10:22 +01:00
Ignacio Tirabasso
55453cc23d Fix rule's description. 2016-01-21 15:22:48 -03:00
Ignacio Tirabasso
371db089c9 Change EmptyMethodInAbstractClassShouldBeAbstract rule's description.
Summary: Change EmptyMethodInAbstractClassShouldBeAbstract rule's description.

Test Plan: run tests

Reviewers: jmsotuyo

Differential Revision: http://ph.monits.com/D14582
2016-01-21 15:09:27 -03:00
Andreas Dangel
260e777d71 Fix unit test 2016-01-20 22:47:15 +01:00
Andreas Dangel
2b700c02b6 Fix unit test 2016-01-20 22:33:50 +01:00
Andreas Dangel
3e791f5d22 Merge branch 'pr-30' 2016-01-20 22:25:40 +01:00
Andreas Dangel
bd64e4fdc6 Merge branch 'pr-30' into pmd/5.4.x 2016-01-20 22:24:08 +01:00
Andreas Dangel
641ab25850 Merge branch 'pr-30' into pmd/5.3.x 2016-01-20 22:21:18 +01:00
Andreas Dangel
8c4d307ddd Refactor command line tests for CPD and create a BaseCPDCLITest class 2016-01-20 22:13:25 +01:00
Andreas Dangel
7a33d59a95 Add unit test for new behavior 2016-01-20 22:08:45 +01:00
Andreas Dangel
b9b6e13849 Update changelog 2016-01-20 22:08:28 +01:00
Andreas Dangel
64441c8e93 Merge branch 'tiobe/remove_filefilter_for_files' of https://github.com/tiobe/pmd into pr-30 2016-01-20 21:38:23 +01:00
Andreas Dangel
531c88b103 Merge branch 'bug-1452' 2016-01-15 10:44:10 +01:00
Andreas Dangel
0cdc14deed Merge branch 'bug-1452' into pmd/5.4.x 2016-01-15 10:42:56 +01:00
Andreas Dangel
d76c5b0de6 Merge branch 'bug-1452' into pmd/5.3.x 2016-01-15 10:42:47 +01:00
Andreas Dangel
7bf00118a7 Refactoring AccessorClassGenerationRule 2016-01-15 10:42:19 +01:00
Andreas Dangel
69dbbdfe2d references #81 2016-01-15 10:42:08 +01:00
Andreas Dangel
5d5ac077b1 Merge branch 'codeclimate-doc' 2016-01-15 09:54:20 +01:00
Andreas Dangel
74805b7a87 Merge branch 'codeclimate-doc' into pmd/5.4.x 2016-01-15 09:54:11 +01:00
Andreas Dangel
699077fc7d Merge branch 'codeclimate-doc' into pmd/5.3.x 2016-01-15 09:54:00 +01:00
Andreas Dangel
e8e950ad20 Add codeclimate renderer to the documentation 2016-01-15 09:53:43 +01:00
Jan van Nunen
607606534d Added file encoding detection to CPD. 2016-01-11 13:57:04 +01:00
Andreas Dangel
fbe5a52b6f pmd-perl: remove pmd-build / site plugin, as perl doesn't have any rulesets/rules 2016-01-07 11:49:39 +01:00
Andreas Dangel
ac51f480a3 Merge branch 'pr-29' 2016-01-07 10:59:33 +01:00
Andreas Dangel
078db01307 Merge branch 'pr-29' into pmd/5.4.x 2016-01-07 10:58:53 +01:00
Andreas Dangel
207cf4842e Merge branch 'pr-29' into pmd/5.3.x 2016-01-07 10:58:46 +01:00
Andreas Dangel
03411d620e Update changelog 2016-01-07 10:58:33 +01:00
Andreas Dangel
4a90118222 Merge branch 'tiobe/UTF8_BOM_support_for_JSP_tokenizer' of https://github.com/tiobe/pmd into pr-29 2016-01-07 10:58:05 +01:00
Andreas Dangel
ea7669ee92 Merge branch 'pr-27' 2016-01-07 10:56:59 +01:00
Andreas Dangel
fda1c719d7 Merge branch 'pr-27' into pmd/5.4.x 2016-01-07 10:56:19 +01:00
Andreas Dangel
907a05670a Merge branch 'pr-27' into pmd/5.3.x 2016-01-07 10:56:09 +01:00
Andreas Dangel
eee4bf2550 Update changelog 2016-01-07 10:55:56 +01:00
Andreas Dangel
a33e83addc Merge branch 'tiobe/raw-CPP11-literals' of https://github.com/tiobe/pmd into pr-27 2016-01-07 10:55:27 +01:00
Andreas Dangel
fc2856ee34 Merge branch 'pr-83'
Closes #83 (rebased)
2016-01-07 10:53:46 +01:00
Andreas Dangel
2b72dcabf2 Merge branch 'pr-83' into pmd/5.4.x
Closes #83 (rebased)
2016-01-07 10:52:28 +01:00
Andreas Dangel
e5a046007a Merge branch 'pr-83' into pmd/5.3.x
Closes #83 (rebased)
2016-01-07 10:51:20 +01:00
Andreas Dangel
e08ba3ea30 Update changelog 2016-01-07 10:50:48 +01:00
Bob W. Hogg
b2d5342493 Adds new Code Climate-compliant JSON renderer 2016-01-07 10:47:47 +01:00
Andreas Dangel
eff949eea9 Merge branch 'vickenty-cpd-perl' 2016-01-07 10:45:23 +01:00
Andreas Dangel
f78358c329 Update changelog 2016-01-07 10:41:01 +01:00
Andreas Dangel
e73926b3ee Merge branch 'cpd-perl' of https://github.com/vickenty/pmd into vickenty-cpd-perl 2016-01-07 10:39:59 +01:00
Andreas Dangel
ccf2415eec Merge branch 'pr-80'
Closes #80 (rebased)
2016-01-07 10:37:14 +01:00
Andreas Dangel
f186d250c3 Merge branch 'pr-80' into pmd/5.4.x
Closes #80 (rebased)
2016-01-07 10:36:55 +01:00
Andreas Dangel
f4a3e77185 Merge branch 'pr-80' into pmd/5.3.x
Closes #80 (rebased onto pmd/5.3.x)
2016-01-07 10:36:37 +01:00
Andreas Dangel
d783bdcfb0 Update changelog 2016-01-07 10:36:25 +01:00
Wim Deblauwe
8bb07ad5f5 Update mvn-plugin.md
The correct name of the property to configure linking to source code is `linkXRef` and not `linkXref`. If you use `<linkXRef>false</linkXRef>` then the warning "[WARNING] Unable to locate Source XRef to link to - DISABLED" is no longer printed. See also http://stackoverflow.com/a/18390459/40064
2016-01-07 10:35:12 +01:00
Andreas Dangel
a200fd2625 Merge branch 'pr-79'
Closes #79
2016-01-07 10:26:39 +01:00
Andreas Dangel
38e1ff9c41 Merge branch 'pr-79' into pmd/5.4.x
Closes #79
2016-01-07 10:25:36 +01:00
Andreas Dangel
1dbf832d24 Merge branch 'pr-79' into pmd/5.3.x
Closes #79
2016-01-07 10:25:30 +01:00
Andreas Dangel
985ed57c52 Update changelog 2016-01-07 10:20:47 +01:00
Matt Benson
f67dbb85f6 do not flag public static void main(String[]) as UseVarargs; ignore @Override for UseVarargs 2016-01-07 10:16:26 +01:00
Andreas Dangel
efbea802f9 Fix typos in release script 2016-01-07 10:14:24 +01:00
Vickenty Fesunov
f647e19fd6 Add Perl support to CPD. 2015-12-28 13:07:58 +01:00
Jan van Nunen
10db98bfee Removed file filter for files that are explicitly specified on the CPD command line using the '--files' command line option. 2015-12-10 16:47:58 +01:00
Jan van Nunen
a735fb057e Added support for files with UTF-8 BOM to JSP tokenizer. 2015-12-10 16:24:51 +01:00
Jan van Nunen
c099d50397 Added support for Raw String Literals (C++11). 2015-12-10 16:15:40 +01:00
Andreas Dangel
c0d29af1c2 Merge branch 'pmd/5.4.x' 2015-12-04 22:55:34 +01:00
Andreas Dangel
a483ff353b Prepare next development version 2015-12-04 22:25:44 +01:00
Andreas Dangel
9c60faeab5 [maven-release-plugin] prepare for next development iteration 2015-12-04 21:24:48 +01:00
Andreas Dangel
9a26c74723 [maven-release-plugin] prepare release pmd_releases/5.4.1 2015-12-04 21:24:47 +01:00
Andreas Dangel
3bdd013a5f Prepare pmd release 5.4.1 2015-12-04 21:15:08 +01:00
Andreas Dangel
14510cdc5c Fix pom of pmd-java8 2015-12-04 21:03:58 +01:00
Andreas Dangel
11c091d348 Merge branch 'pmd/5.3.x' into pmd/5.4.x 2015-12-04 21:03:18 +01:00
Andreas Dangel
fda6bef16e Prepare next development version 2015-12-04 20:01:31 +01:00
Andreas Dangel
83eceab455 [maven-release-plugin] prepare for next development iteration 2015-12-04 19:15:01 +01:00
Andreas Dangel
c141c91612 [maven-release-plugin] prepare release pmd_releases/5.3.6 2015-12-04 19:15:01 +01:00
Andreas Dangel
beb07e883f Prepare pmd release 5.3.6 2015-12-04 19:00:54 +01:00
Andreas Dangel
cdc7b688e4 Merge branch 'bug-1434' 2015-12-03 20:17:22 +01:00
Andreas Dangel
9931a52608 Merge branch 'bug-1434' into pmd/5.4.x 2015-12-03 20:16:21 +01:00
Andreas Dangel
6a3e7ce6ec Merge branch 'bug-1434' into pmd/5.3.x 2015-12-03 20:15:42 +01:00
Andreas Dangel
735b3e59f2 #1434 CommentRequired raises violation on serialVersionUID field 2015-12-03 20:15:25 +01:00
Andreas Dangel
07e60d756e Merge branch 'bug-1373' 2015-11-30 10:10:34 +01:00
Andreas Dangel
a4c131c1bd Merge branch 'bug-1373' into pmd/5.4.x 2015-11-30 10:10:29 +01:00
Andreas Dangel
af57d270e4 Merge branch 'bug-1373' into pmd/5.3.x 2015-11-30 10:10:18 +01:00
Andreas Dangel
2452db15f4 #1373 JUnitAssertionsShouldIncludeMessage is no longer compatible with TestNG 2015-11-30 10:05:42 +01:00
Andreas Dangel
b72a9c5810 Merge branch 'bug-1374' 2015-11-30 09:46:33 +01:00
Andreas Dangel
b74d821714 Merge branch 'bug-1374' into pmd/5.4.x 2015-11-30 09:46:25 +01:00
Andreas Dangel
06cce6055a Merge branch 'bug-1374' into pmd/5.3.x 2015-11-30 09:46:15 +01:00
Andreas Dangel
bc9379d9b4 verify #1374 JUnitAssertionsShouldIncludeMessage does not work 2015-11-30 09:35:27 +01:00
Andreas Dangel
f4f5af7fc3 Merge branch 'bug-1446' 2015-11-30 09:31:16 +01:00
Andreas Dangel
663d3ddad0 Merge branch 'bug-1446' into pmd/5.4.x 2015-11-30 09:31:06 +01:00
Andreas Dangel
9075c66a3a Merge branch 'bug-1446' into pmd/5.3.x 2015-11-30 09:30:56 +01:00
Andreas Dangel
2a52757aa5 #1446 False positive with JUnit4TestShouldUseBeforeAnnotation when TestNG is used 2015-11-30 09:26:13 +01:00
Andreas Dangel
b78c7f2aa7 Merge branch 'java-7' 2015-11-29 22:11:44 +01:00
Andreas Dangel
9086dbb8b9 Merge branch 'java-7' into pmd/5.4.x 2015-11-29 22:02:27 +01:00
Andreas Dangel
d563eb30fc Java 7 changes and some compiler warnings fixed 2015-11-29 19:55:13 +01:00
Andreas Dangel
fd2dcddc44 Java 7 changes and some compiler warnings fixed 2015-11-25 22:06:18 +01:00
Andreas Dangel
d7b5ef8884 Java 7 changes and some compiler warnings fixed 2015-11-20 11:32:18 +01:00
Andreas Dangel
1b64519690 Java 7 changes 2015-11-20 11:32:18 +01:00
Andreas Dangel
88477e3f54 Merge branch 'bug-1436' 2015-11-20 11:23:25 +01:00
Andreas Dangel
14af9fd1cb Merge branch 'bug-1436' into pmd/5.4.x 2015-11-20 11:23:18 +01:00
Andreas Dangel
da50aa33ea Merge branch 'bug-1436' into pmd/5.3.x 2015-11-20 11:23:12 +01:00
Andreas Dangel
b4c2a51781 #1436 UnnecessaryFullyQualifiedName false positive on clashing static imports with enums 2015-11-20 11:23:01 +01:00
Andreas Dangel
74b6be0690 Merge branch 'bug-1422' 2015-11-20 10:11:46 +01:00
Andreas Dangel
6754865e0b Merge branch 'bug-1422' into pmd/5.4.x 2015-11-20 10:10:55 +01:00
Andreas Dangel
988931c43d #1422 UselessQualifiedThis: False positive with Java 8 Function 2015-11-20 10:05:49 +01:00
Andreas Dangel
8fe0071cf9 Merge branch 'bug-1431' 2015-11-19 22:11:59 +01:00
Andreas Dangel
4a0853060f Merge branch 'bug-1431' into pmd/5.4.x 2015-11-19 22:11:51 +01:00
Andreas Dangel
07aa990ccc Merge branch 'bug-1431' into pmd/5.3.x 2015-11-19 22:11:40 +01:00
Andreas Dangel
d621707e2f #1431 SuspiciousEqualsMethodName false positive 2015-11-19 22:06:51 +01:00
Andreas Dangel
12afa44ec8 Merge branch 'bug-1438' 2015-11-19 21:51:06 +01:00
Andreas Dangel
3282a84652 Merge branch 'bug-1438' into pmd/5.4.x 2015-11-19 21:45:45 +01:00
Andreas Dangel
1c7d1a1f1d Merge branch 'bug-1438' into pmd/5.3.x 2015-11-19 21:41:21 +01:00
Andreas Dangel
f2ec1be93f #1438 UseNotifyAllInsteadOfNotify gives false positive 2015-11-19 21:35:50 +01:00
Andreas Dangel
bbc0bc718d #1442 Java 9 Jigsaw readiness 2015-11-18 19:31:12 +01:00
Andreas Dangel
7ed200f387 Merge branch 'bug-1443' 2015-11-16 21:43:49 +01:00
Andreas Dangel
adf3e231af Merge branch 'bug-1443' into pmd/5.4.x 2015-11-16 21:39:16 +01:00
Andreas Dangel
aab043787b Merge branch 'bug-1443' into pmd/5.3.x 2015-11-16 21:34:33 +01:00
David Burström
90b1f65ea2 #1443 RedundantFieldInitializer: False positive for small floats 2015-11-16 21:33:51 +01:00
Andreas Dangel
f9d1a4e3f7 Merge branch 'travis-pull-request-fix' 2015-11-14 18:09:21 +01:00
Andreas Dangel
0181f14347 Merge branch 'travis-pull-request-fix' into pmd/5.4.x 2015-11-14 18:09:17 +01:00
Andreas Dangel
41b51c2158 Merge branch 'travis-pull-request-fix' into pmd/5.3.x 2015-11-14 18:09:10 +01:00
Andreas Dangel
f1a319d6ee Make sure the pull request validation builds don't fail 2015-11-14 18:08:56 +01:00
Andreas Dangel
066630ba21 Merge branch 'Monits-Add-check-to-MissingStaticMethodInNonInstantiableClass-rule' 2015-11-14 18:06:50 +01:00
Andreas Dangel
eb39afe2cc Update changelog 2015-11-14 18:02:13 +01:00
Andreas Dangel
0056043ee6 Merge branch 'Add-check-to-MissingStaticMethodInNonInstantiableClass-rule' of https://github.com/Monits/pmd into Monits-Add-check-to-MissingStaticMethodInNonInstantiableClass-rule 2015-11-14 18:01:13 +01:00
Andreas Dangel
ac39f245b2 Merge branch 'bug-1441' 2015-11-14 17:56:43 +01:00
Andreas Dangel
30a9309479 Merge branch 'bug-1441' into pmd/5.4.x 2015-11-14 17:56:01 +01:00
Andreas Dangel
c8a1307684 Merge branch 'bug-1441' into pmd/5.3.x 2015-11-14 17:54:13 +01:00
Andreas Dangel
c9dca8dc92 #1441 PMD: Update documentation how to compile after modularization 2015-11-14 17:53:52 +01:00
Andreas Dangel
c584aa8cfa Merge branch 'bug-1440' 2015-11-13 19:18:51 +01:00
Andreas Dangel
0c2f2e5729 Merge branch 'bug-1440' into pmd/5.4.x 2015-11-13 19:14:24 +01:00
Andreas Dangel
0b1fc2b39f Merge branch 'bug-1440' into pmd/5.3.x 2015-11-13 19:09:27 +01:00
Andreas Dangel
02c49ce881 #1440 NPE in AvoidCallingFinalize 2015-11-13 19:05:24 +01:00
Andreas Dangel
e6d67312e1 InvalidSlf4jMessageFormat: Fix Null pointer with VariableNamingDeclaration
and VariableDeclaratorId types
2015-11-01 19:39:06 +01:00
Andreas Dangel
e7c0d03180 InvalidSlf4jMessageFormat: Fix class cast exception with method calls 2015-11-01 18:51:37 +01:00
Damian Techeira
50554257ce Add Builder pattern check
Summary: Add the builder pattern check to the MissingStaticMethodInNonInstantiatableClass rule

Test Plan: run tests

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Maniphest Tasks: T1440

Differential Revision: http://ph.monits.com/D13295
2015-10-30 12:10:27 -03:00
Andreas Dangel
a0bef4d9fe Merge branch 'mkordas-typos' 2015-10-28 21:17:07 +01:00
Andreas Dangel
42be7c099d Update changelog 2015-10-28 21:11:46 +01:00
Andreas Dangel
8bfe2682e9 Merge branch 'typos' of https://github.com/mkordas/pmd into mkordas-typos 2015-10-28 21:10:20 +01:00
Andreas Dangel
7be078a2d8 Merge branch 'pull-request-25' into pmd/5.4.x 2015-10-26 21:00:53 +01:00
Andreas Dangel
c43b24a40f Merge branch 'pull-request-25' 2015-10-26 21:00:31 +01:00
Andreas Dangel
b0a1223748 Merge branch 'pull-request-25' into pmd/5.3.x 2015-10-26 20:54:39 +01:00
Andreas Dangel
ba92715b19 CPD GUI: Add ignoreUsings option 2015-10-26 20:47:34 +01:00
Andreas Dangel
2fa869a868 CPD Ant Task: Add ignoreUsings option 2015-10-26 20:36:07 +01:00
Andreas Dangel
88634a220a Add "--ignore-usings" parameter to CPD commandline for C# 2015-10-25 19:10:18 +01:00
Andreas Dangel
3a7de73d96 Update changelog 2015-10-25 18:57:35 +01:00
Jan van Nunen
7be198aaa3 Added option to exclude C# using directives from duplicated code analysis.
To exclude C# using directives the system property 'ignore_usings=true' has to be specified on the command line with '-Dignore_usings=true'.
2015-10-23 15:48:25 +02:00
Jan van Nunen
aa87701ee5 Extended Objective-C grammar to accept Unicode characters in identifiers. 2015-10-23 15:46:38 +02:00
Michal Kordas
31cef1474a Fix various typos 2015-10-17 20:33:42 +02:00
Andreas Dangel
312d4c60c0 Merge branch 'bug-1430' 2015-10-17 18:01:25 +02:00
Andreas Dangel
4db5965907 Merge branch 'bug-1430' into pmd/5.4.x 2015-10-17 18:00:48 +02:00
Andreas Dangel
9df4ff15b5 #1430 CommentDefaultAccessModifier triggers on field annotated with @VisibleForTesting 2015-10-17 18:00:37 +02:00
Andreas Dangel
74751bd613 Merge branch 'amitbitcse-pmd/5.3.x' 2015-10-16 17:51:16 +02:00
Andreas Dangel
2cff91d187 Merge branch 'amitbitcse-pmd/5.3.x' into pmd/5.4.x 2015-10-16 17:50:42 +02:00
Andreas Dangel
933002de34 Merge branch 'amitbitcse-pmd/5.3.x' into pmd/5.3.x 2015-10-16 17:50:14 +02:00
Andreas Dangel
b753cc5ec5 Update changelog, keep backwards compatible createRuleSets methods by overloading 2015-10-16 17:49:45 +02:00
Andreas Dangel
64b0a04696 Merge branch 'kullfar-master' 2015-10-16 17:20:09 +02:00
Andreas Dangel
7e3c4887e2 Update changelog 2015-10-16 17:19:14 +02:00
Andreas Dangel
599a556bc1 Merge branch 'master' of https://github.com/kullfar/pmd into kullfar-master 2015-10-16 17:18:35 +02:00
Andreas Dangel
0bd9aa9568 Merge branch 'mkorda-patch-2', Closes #74 2015-10-16 17:09:37 +02:00
Andreas Dangel
e4a244064b Merge branch 'mkorda-patch-2' into pmd/5.4.x 2015-10-16 17:08:04 +02:00
Andreas Dangel
7a7ef4b92e Update changelog 2015-10-16 17:07:53 +02:00
Michal Kordas
ad853d14d7 Fix rendering CommentDefaultAccessModifier description as code 2015-10-16 17:05:36 +02:00
Andreas Dangel
4fd445cc26 Update changelog 2015-10-16 16:44:35 +02:00
Andreas Dangel
e490c78519 Merge branch 'invalid-slf4j-message-format-rule' of https://github.com/Monits/pmd into Monits-invalid-slf4j-message-format-rule 2015-10-16 16:37:32 +02:00
Andreas Dangel
91d3dee1b6 Merge branch 'travis-fix' 2015-10-16 16:35:46 +02:00
Andreas Dangel
71ad5783b7 Merge branch 'travis-fix' into pmd/5.4.x 2015-10-16 16:35:34 +02:00
Andreas Dangel
b5706d0726 Merge branch 'travis-fix' into pmd/5.3.x 2015-10-16 16:34:43 +02:00
Andreas Dangel
763bd9a478 travis: only deploy if we have the env vars and if it is not a pull request 2015-10-16 14:27:10 +02:00
Andreas Dangel
8d94c5b44c Merge branch 'bug-1425' 2015-10-16 12:36:06 +02:00
Andreas Dangel
0c3c9830e7 Merge branch 'bug-1425' into pmd/5.4.x 2015-10-16 12:30:14 +02:00
Andreas Dangel
7fe60c0747 Merge branch 'bug-1425' into pmd/5.3.x 2015-10-16 12:25:51 +02:00
Andreas Dangel
3393507082 #1425 Invalid XML Characters in Output
XMLRenderer correctly escapes the surrogate characters
AvoidDuplicateLiterals tries to reconstruct original string literal
2015-10-16 12:18:15 +02:00
Stas Gromov
a1e6702a67 fix formatting typos in an example of the DoNotCallGarbageCollectionExplicitly rule 2015-10-15 15:53:22 +03:00
amitbitcse
9da51952ef RuleSetFactory Performance Enhancement:-
To enhance performance of RuleSetFactory, the RuleSets generated by RuleSetFactory from ruleSetString is set in PMDConfiguration and is checked before generating it again in MonoThreadProcessor, MutliThreadProcessor and PMDRunnable classes.
2015-10-13 17:50:37 +05:30
Andreas Dangel
4e8024e5b1 Merge branch 'bug-1428' into pmd/5.4.x 2015-10-10 19:00:18 +02:00
Andreas Dangel
ce73691d5d Merge branch 'bug-1428' into pmd/5.3.x 2015-10-10 18:59:21 +02:00
Andreas Dangel
9d350e6f78 Merge branch 'bug-1428' 2015-10-10 18:59:10 +02:00
Andreas Dangel
808943e366 #1428 False positive in UnusedPrivateField when local variable hides member variable 2015-10-10 18:54:31 +02:00
Andreas Dangel
ea074e2c53 Merge branch 'pr-72' 2015-10-10 17:40:41 +02:00
Andreas Dangel
262d154bdb Merge branch 'pr-72' into pmd/5.4.x 2015-10-10 17:40:29 +02:00
Andreas Dangel
63afc1ec94 Merge branch 'pr-72' into pmd/5.3.x 2015-10-10 17:40:13 +02:00
Andreas Dangel
d788b6ce74 Update changelog for pr-72 2015-10-10 17:37:58 +02:00
Andreas Dangel
1e0b8cfa21 Merge branch 'pmd/5.3.x' of https://github.com/amitbitcse/pmd into pr-72 2015-10-10 17:22:59 +02:00
Andreas Dangel
01b76ad30d Merge branch 'travis-prevent-building-tags' 2015-10-10 16:53:46 +02:00
Andreas Dangel
4134904aa4 Merge branch 'travis-prevent-building-tags' into pmd/5.4.x 2015-10-10 16:53:40 +02:00
Andreas Dangel
79853cdace Merge branch 'travis-prevent-building-tags' into pmd/5.3.x 2015-10-10 16:53:31 +02:00
Andreas Dangel
2760827dc7 Prevent travis from building release tags 2015-10-10 16:53:19 +02:00
Andreas Dangel
edc32b3f2b Merge branch 'bug-1429' 2015-10-10 16:13:59 +02:00
Andreas Dangel
c79eff06e8 Merge branch 'bug-1429' into pmd/5.4.x 2015-10-10 16:13:18 +02:00
Andreas Dangel
a7a84766bd #1429 Java - Parse Error: Cast in return expression 2015-10-10 16:08:38 +02:00
Andreas Dangel
44ebcf1e7c Merge branch 'travis-pull-requests' 2015-10-10 15:22:39 +02:00
Andreas Dangel
27fe4f5773 Merge branch 'travis-pull-requests' into pmd/5.4.x 2015-10-10 15:22:30 +02:00
Andreas Dangel
6b60b4be34 Fix travis build failure for pull requests 2015-10-10 15:20:25 +02:00
Damian Techeira
414da52fb2 remove annotation
Test Plan: none

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12873
2015-10-09 15:26:18 -03:00
Damian Techeira
2899a679b3 Add rule to look for invalid message format in slf4j loggers
Test Plan: run test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Maniphest Tasks: T1017

Differential Revision: http://ph.monits.com/D12540
2015-10-09 14:19:41 -03:00
amitbitcse
1d190605e5 Added capability in Java and JSP parser for tracking tokens. It is often useful to keep track of each node's first and last token so that input can be easily reproduced again. Ref - https://javacc.java.net/doc/JJTree.html 2015-10-06 11:04:22 +05:30
Andreas Dangel
4faf5e4240 Merge branch 'wip-dogfood-test' into pmd/5.4.x 2015-10-05 09:29:21 +02:00
Andreas Dangel
209c35039a Merge branch 'wip-dogfood-test' 2015-10-05 09:22:00 +02:00
Andreas Dangel
43c1aaa702 Add verification test for dogfood.xml ruleset and fix it
See also commit 05553969787df9524cff0ffd376b3ebf6b98577e
2015-10-05 09:17:25 +02:00
Andreas Dangel
0555396978 Upgrade dogfood 2015-10-04 16:27:32 +02:00
Andreas Dangel
9f74721ae7 Prepare next dev version on master branch: 5.5.0-SNAPSHOT 2015-10-04 16:10:33 +02:00
Andreas Dangel
37756dfc67 Merge branch 'pmd/5.4.x' 2015-10-04 16:08:17 +02:00
Andreas Dangel
5112352af0 Prepare next development version 2015-10-04 15:40:38 +02:00
Andreas Dangel
d5bf509758 [maven-release-plugin] prepare for next development iteration 2015-10-04 14:39:14 +02:00
Andreas Dangel
c21763a5e7 [maven-release-plugin] prepare release pmd_releases/5.4.0 2015-10-04 14:39:13 +02:00
Andreas Dangel
433c602880 Prepare pmd release 5.4.0 2015-10-04 14:31:40 +02:00
Andreas Dangel
2b4a4a6334 Merge branch 'pmd/5.3.x' 2015-10-04 14:15:29 +02:00
Andreas Dangel
84c407f5d2 add src zip file in do-release.sh upload instructions 2015-10-04 14:07:12 +02:00
Andreas Dangel
79e9b7616a Prepare next development version 2015-10-04 13:54:43 +02:00
Andreas Dangel
af9f9d477d [maven-release-plugin] prepare for next development iteration 2015-10-04 12:48:25 +02:00
Andreas Dangel
f357da73b6 [maven-release-plugin] prepare release pmd_releases/5.3.5 2015-10-04 12:48:25 +02:00
Andreas Dangel
98e0c1f914 Prepare pmd release 5.3.5 2015-10-04 12:40:49 +02:00
Andreas Dangel
52f8329ff9 Reformat changelog to that it works with the doxia markdown renderer 2015-10-04 12:30:29 +02:00
Andreas Dangel
ad469d53cb Use released version of pmd-build plugin 2015-10-04 12:23:12 +02:00
Andreas Dangel
193f75925a Fix checkstyle configuration 2015-10-04 12:05:41 +02:00
Andreas Dangel
5ee98b8786 Fix javascript after upgrading rhino library 2015-10-04 12:00:24 +02:00
Andreas Dangel
f154d0a2b4 Upgrade maven plugins and dependencies 2015-10-04 11:55:51 +02:00
Andreas Dangel
82a137880b UselessParentheses now exists only in unnecessary 2015-10-04 11:26:16 +02:00
Andreas Dangel
c9f623ca7b Remove deprecated rules 2015-10-04 11:12:16 +02:00
Andreas Dangel
6797742497 Improve changelog format 2015-10-04 10:58:45 +02:00
Andreas Dangel
b5c2932051 Add unit test for #1414 2015-10-04 10:07:05 +02:00
Andreas Dangel
39cfbc238b #1420 UnusedPrivateField: Ignore fields if using lombok 2015-10-04 09:52:22 +02:00
Andreas Dangel
73fe285b1a #1418 RedundantFieldInitializer false positive with large long value 2015-10-03 17:36:07 +02:00
Andreas Dangel
3bf91a84d6 travis - don't try to deploy pull request builds... 2015-10-03 16:57:16 +02:00
Andreas Dangel
8b80efbd88 Merge branch 'mkordas-patch-1' into pmd/5.3.x 2015-10-03 16:53:42 +02:00
Andreas Dangel
87db2a5736 Update changelog 2015-10-03 16:49:36 +02:00
Michal Kordas
4a395ee8b7 #1410 Improve description of DefaultPackage rule 2015-09-30 22:36:00 +02:00
Andreas Dangel
39d77e849a Add jacoco plugin for code coverage 2015-09-26 18:13:34 +02:00
Andreas Dangel
f17cb5f86e Remove clover plugin in favor our jacoco 2015-09-26 18:13:10 +02:00
Andreas Dangel
bbd0bf98fd #1414 Command line parameter to disable "failOnViolation" behavior 2015-09-26 17:08:20 +02:00
Andreas Dangel
38741d4638 Improve exit status documentation for PMD and CPD 2015-09-26 16:18:24 +02:00
Andreas Dangel
0ff27aab42 PMD 5.4.0 will use Java 1.7 from now on 2015-09-26 15:36:08 +02:00
Andreas Dangel
1ae4400ec0 Merge branch 'pmd/5.3.x' 2015-09-26 15:25:52 +02:00
Andreas Dangel
98278cfdfc #1413 False positive StringBuffer constructor with ?: int value 2015-09-26 11:08:21 +02:00
Andreas Dangel
145780de9c #1407 UselessParentheses "&" and "+" operator precedence 2015-09-26 10:23:43 +02:00
Andreas Dangel
f3da33cca2 #1387 CloseResource has false positive for ResultSet 2015-09-26 09:55:02 +02:00
Andreas Dangel
4cce31418a Add travis.yml - see https://travis-ci.org/pmd/pmd
Cherry picked from master
* 1a110587f005704a2e8354ef241cae23d35f5169
* 51f17c60104edd731bcfa0abcf6d617fae69d3ae
* 36bc2c2dee8d3c64bcd73fcfb257b97fbcb9630f
* cbf598c92c1ca251a4a7a2d8e3c30b49979d997b
2015-09-26 09:26:43 +02:00
Andreas Dangel
cbf598c92c Travis - don't run maven in quiet mode 2015-09-25 20:17:47 +02:00
Andreas Dangel
36bc2c2dee Configure Travis
* email
* cache
* deployment to sonatype-nexus-snapshots
2015-09-25 20:02:55 +02:00
Andreas Dangel
51f17c6010 Add build status to README.md
And update URLs
2015-09-25 12:20:50 +02:00
Andreas Dangel
1a110587f0 Add travis.yml - see https://travis-ci.org/pmd/pmd 2015-09-25 11:50:09 +02:00
Andreas Dangel
8e6ef4c2d9 #1412 UnusedPrivateMethod false positive: Issue #1403 not completely solved
Fix plsql code
2015-09-22 21:55:25 +02:00
Andreas Dangel
b965cf45b3 #1412 UnusedPrivateMethod false positive: Issue #1403 not completely solved 2015-09-22 21:55:06 +02:00
Andreas Dangel
d8d8a9539f #1409 NullPointerException in InsufficientStringBufferRule 2015-09-20 20:51:09 +02:00
Andreas Dangel
365e7a1f68 #1410 DefaultPackage triggers on field annotated with @VisibleForTesting 2015-09-20 20:24:46 +02:00
Andreas Dangel
aa5950fa41 Merge branch 'pmd/5.3.x' into master
# Conflicts:
#	pmd-core/pom.xml
#	pmd-cpp/pom.xml
#	pmd-cs/pom.xml
#	pmd-dist/pom.xml
#	pmd-fortran/pom.xml
#	pmd-go/pom.xml
#	pmd-java/pom.xml
#	pmd-java8/pom.xml
#	pmd-javascript/pom.xml
#	pmd-jsp/pom.xml
#	pmd-matlab/pom.xml
#	pmd-objectivec/pom.xml
#	pmd-php/pom.xml
#	pmd-plsql/pom.xml
#	pmd-python/pom.xml
#	pmd-ruby/pom.xml
#	pmd-scala/pom.xml
#	pmd-test/pom.xml
#	pmd-vm/pom.xml
#	pmd-xml/pom.xml
#	pom.xml
#	src/site/markdown/overview/changelog.md
2015-09-18 14:02:28 +02:00
Andreas Dangel
3fb43a060a Prepare next development version 2015-09-18 13:46:06 +02:00
Andreas Dangel
819611dd23 [maven-release-plugin] prepare for next development iteration 2015-09-18 12:36:07 +02:00
Andreas Dangel
0ffbe97a04 [maven-release-plugin] prepare release pmd_releases/5.3.4 2015-09-18 12:36:06 +02:00
Andreas Dangel
06d77b371a Use release profile PMD_GPG_PROFILE 2015-09-18 12:24:27 +02:00
Andreas Dangel
972eac40f0 Specify gpg.keyname via -Darguments 2015-09-18 11:57:09 +02:00
Andreas Dangel
336c06fb10 Actually use the variables PMD_GPG_KEY and PMD_SF_USER 2015-09-18 11:49:20 +02:00
Andreas Dangel
87803ed27a Prepare pmd release 5.3.4 2015-09-18 11:44:40 +02:00
Andreas Dangel
ca2794bf7d Fixes for the release script 2015-09-18 11:40:16 +02:00
Andreas Dangel
d921ffe1e3 Add the release shell script 2015-09-18 11:25:30 +02:00
Andreas Dangel
0f48fd501d #1393 PMD hanging during DataflowAnomalyAnalysis 2015-09-18 10:17:01 +02:00
Andreas Dangel
e1a41bdf98 #1405 UnusedPrivateMethod false positive?
Don't use the auxclasspath if not provided.
2015-09-17 20:26:07 +02:00
Andreas Dangel
ad1ffa5835 #1404 Java8 'Unnecessary use of fully qualified name' in Streams Collector 2015-09-16 22:11:18 +02:00
Andreas Dangel
64012cc0b4 verified #1405 UnusedPrivateMethod false positive? 2015-09-16 21:37:17 +02:00
Andreas Dangel
c9b133d634 Update changelog 2015-09-16 08:11:53 +02:00
Andreas Dangel
a030255e81 Merge branch 'master' of https://github.com/tiobe/pmd into tiobe-master 2015-09-16 08:08:19 +02:00
Andreas Dangel
c7df93d22a More braces for code samples with if 2015-09-15 08:17:11 +02:00
Andreas Dangel
ff91c172b0 Update changelog 2015-09-15 08:16:47 +02:00
Andreas Dangel
2500412b14 #1403 False positive UnusedPrivateMethod with JAVA8 2015-09-14 22:36:05 +02:00
Andreas Dangel
9f6190f3b6 #1380 InsufficientStringBufferDeclaration false positive when literal string passed to a lookup service 2015-09-13 10:20:58 +02:00
Andreas Dangel
9e620c2661 #1388 ConstructorCallsOverridableMethodRule doesn't work with params? 2015-09-12 17:56:45 +02:00
Jan van Nunen
5014a51630 Extended Objective-C grammar to accept Unicode characters in identifiers. 2015-09-11 15:17:04 +02:00
Andreas Dangel
ac9fd51f84 #1392 SimplifyStartsWith false-negative 2015-09-11 12:22:49 +02:00
Pedro Rijo
bbb9b4d9d9 Fix code example
Please, use proper java code style in your own examples. An if statement without brackets? More cases all over the examples
2015-09-11 11:20:53 +01:00
Andreas Dangel
93b4ce9bb4 #1394 dogfood.xml - Unable to exclude rules [UncommentedEmptyMethod] 2015-09-08 20:03:28 +02:00
Andreas Dangel
f242c5c5f4 Upgrade maven-pmd-plugin to 3.5 and add pmd execution
The profile "reports" was accidently deactivated by adding other
profiles. Now pmd and checkstyle are executed with all builds.
2015-09-08 19:58:21 +02:00
Andreas Dangel
1984f5ac8a #1395 UnusedPrivateMethod false positive for array element method call 2015-09-08 19:45:49 +02:00
Andreas Dangel
b553c52ef5 #1396 PrematureDeclaration lambda false positive 2015-09-07 20:23:10 +02:00
Andreas Dangel
3abfc2fccb #1397 StringToString should ignore method references 2015-09-07 20:01:18 +02:00
Andreas Dangel
100dd09b28 #1398 False positive for GuardLogStatementJavaUtil with Log4j 2015-09-06 11:06:48 +02:00
Andreas Dangel
a1ab0d6657 #1399 False positive for VariableNamingConventions with annotation @interface 2015-09-05 19:53:05 +02:00
Andreas Dangel
f0dd2b0519 #1400 False positive with JUnit4TestShouldUseBeforeAnnotation 2015-09-05 19:39:31 +02:00
Andreas Dangel
58292bfc38 #1401 False positive for StringBuilder.append called with constructor 2015-09-05 12:10:38 +02:00
Andreas Dangel
b0e657a3d8 Merge branch 'pmd/5.3.x' into master 2015-09-04 22:02:40 +02:00
Andreas Dangel
bd83821dd9 Fix unit test 2015-09-04 21:58:01 +02:00
Andreas Dangel
c0c79e522f #1371 fix unit test 2015-09-04 21:55:16 +02:00
Andreas Dangel
0027fcdd77 Update changelog 2015-09-04 21:55:08 +02:00
José Manuel Rolón
abe800dfa9 Fixed InsufficientStringBufferDeclaration error detection.
Summary:
Added new method to obtaint the lenght of strings added after a constructor.
Added new test for this case.

Fix: http://sourceforge.net/p/pmd/bugs/1371/

Test Plan: Run tests.

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12322
2015-09-04 21:53:45 +02:00
Andreas Dangel
b95433b059 #1371 fix unit test 2015-09-04 21:48:18 +02:00
Andreas Dangel
18e80d06a1 Update changelog 2015-09-04 21:36:55 +02:00
Andreas Dangel
f975ff4a1e Merge branch 'addCheckInsufficientStringBufferDeclarationRule' of https://github.com/Monits/pmd into Monits-addCheckInsufficientStringBufferDeclarationRule 2015-09-04 21:35:35 +02:00
Andreas Dangel
203e39b9b3 Added a new if to check for the append statements after an append contructor.
Summary:
Now the rule check for appends after a contructor call.
Added a new test for this case.
Issue: http://sourceforge.net/p/pmd/bugs/1370/

Test Plan: Run tests.

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12292
2015-09-04 21:34:38 +02:00
Andreas Dangel
735c2e0d4c Update changelog 2015-09-04 21:28:20 +02:00
Andreas Dangel
7a82a527bb Merge branch 'newCheckConsecutiveAppendsShouldReuseRule' of https://github.com/Monits/pmd into Monits-newCheckConsecutiveAppendsShouldReuseRule 2015-09-04 21:27:46 +02:00
Andreas Dangel
922e35453a #1402 Windows-Only: File exclusions are not case insensitive 2015-09-04 21:22:47 +02:00
Andreas Dangel
6e300f0854 #1402 Windows-Only: File exclusions are not case insensitive 2015-09-04 21:21:20 +02:00
Andreas Dangel
944082c53d Revert "Use Path instead of string to check file exclusions to fix windows-only bug where files were not being correctly excluded."
This reverts commit 59fcd70c8d718624a3ab107440debbfab51e0c50.
2015-09-04 21:11:49 +02:00
Andreas Dangel
f964d3329f Update changelog 2015-09-04 20:52:46 +02:00
Andreas Dangel
14a47c82cc Merge branch 'master' of https://github.com/msloan/pmd into msloan-master 2015-09-04 20:51:24 +02:00
Andreas Dangel
22671445e2 #1370 ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
Extended unit test
2015-09-04 20:15:07 +02:00
Andreas Dangel
e3357987f2 Update changelog 2015-09-04 20:14:56 +02:00
José Manuel Rolón
dd8262cf69 Added new append validation.
Check for an append even when the block first child is a LocalVariableDeclaration.
Added new test to check the validation.

Issue: http://sourceforge.net/p/pmd/bugs/1370/
2015-09-04 20:14:09 +02:00
Andreas Dangel
c8990a7977 #1370 ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
Extended unit test
2015-09-04 20:06:55 +02:00
Andreas Dangel
e8f7636e3e Update changelog 2015-09-04 19:59:29 +02:00
Andreas Dangel
aa49f97b22 Merge branch 'missingCheckConsecutiveAppendsShouldReuse' of https://github.com/Monits/pmd into Monits-missingCheckConsecutiveAppendsShouldReuse 2015-09-04 19:57:23 +02:00
Andreas Dangel
c98bdf2f44 Update changelog 2015-09-04 19:41:35 +02:00
Andreas Dangel
443d5094de Merge branch 'fixUselessOverridingMethodRule' of https://github.com/Monits/pmd into Monits-fixUselessOverridingMethodRule 2015-09-04 19:39:58 +02:00
Andreas Dangel
029cc1f779 Update changelog 2015-09-04 19:17:20 +02:00
Andreas Dangel
3ac7a5bcf6 Merge branch 'master' of https://github.com/ghenkes/pmd into ghenkes-master 2015-09-04 19:13:36 +02:00
Andreas Dangel
a865a28af6 Update changelog 2015-09-04 19:05:43 +02:00
Andreas Dangel
cfe91ac728 Merge branch 'addCloneMethodMustBePublicRule' of https://github.com/Monits/pmd into Monits-addCloneMethodMustBePublicRule 2015-09-04 19:02:05 +02:00
Andreas Dangel
d117c9987b Fix list/array out of bounds for CommentDefaultAccessModifierRule and Enums 2015-08-31 20:00:47 +02:00
Andreas Dangel
a9a1a37dbf Add snapshot repositories also for plugins 2015-08-31 19:41:51 +02:00
Andreas Dangel
ea5bc9daa0 Fix changelog format 2015-08-31 19:32:08 +02:00
Andreas Dangel
e69d3174de Use new pmd-build 0.10-SNAPSHOT plugin which documents
the minimum language version of a rule.
2015-08-31 18:20:35 +02:00
Andreas Dangel
36f48c9159 Update changelog, add the new rule to 540.xml 2015-08-31 18:01:03 +02:00
Andreas Dangel
7ea022a230 Merge branch 'addCloneMethodReturnTypeMustMatchClassNameRule' of https://github.com/Monits/pmd into Monits-addCloneMethodReturnTypeMustMatchClassNameRule 2015-08-31 17:54:38 +02:00
José Manuel Rolón
87b3f7d496 Added a new if to check for the append statements after an append contructor.
Summary:
Now the rule check for appends after a contructor call.
Added a new test for this case.
Issue: http://sourceforge.net/p/pmd/bugs/1370/

Test Plan: Run tests.

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12292
2015-08-31 12:50:53 -03:00
José Manuel Rolón
ef0c8c9d27 Fixed InsufficientStringBufferDeclaration error detection.
Summary:
Added new method to obtaint the lenght of strings added after a constructor.
Added new test for this case.

Fix: http://sourceforge.net/p/pmd/bugs/1371/

Test Plan: Run tests.

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12322
2015-08-31 12:12:09 -03:00
Matt Sloan
59fcd70c8d Use Path instead of string to check file exclusions to fix windows-only bug where files were not being correctly excluded. 2015-08-24 00:28:12 -07:00
José Manuel Rolón
665f1ec5d1 Added new append validation.
Check for an append even when the block first child is a LocalVariableDeclaration.
Added new test to check the validation.

Issue: http://sourceforge.net/p/pmd/bugs/1370/
2015-08-21 18:14:45 -03:00
José Manuel Rolón
3cf58cb43a Fix statement cast in UselessOverridingMethodRule class.
Summary: Now using the parent Node class to avoid the ClassCastException.

Test Plan: Added new test for the modified class. Run tests

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12213
2015-08-19 17:29:48 -03:00
Damian Techeira
d9d02edb06 Add language version attribute
Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Subscribers: jmsotuyo

Differential Revision: http://ph.monits.com/D12205
2015-08-19 09:26:14 -03:00
Henkes
822140337e Change CheckResultSet to allow for the result of the navigation methods to be returned 2015-08-10 15:30:11 -05:00
Andreas Dangel
00a6dd0595 Merge branch 'Monits-addUselessQualifiedThisRule' 2015-08-10 21:14:35 +02:00
Andreas Dangel
72db30c87e Update changelog and add new rule to 540.xml 2015-08-10 21:10:47 +02:00
Andreas Dangel
b9339b77c0 Merge branch 'addUselessQualifiedThisRule' of https://github.com/Monits/pmd into Monits-addUselessQualifiedThisRule 2015-08-10 21:05:54 +02:00
Andreas Dangel
1aa46f58ef Merge branch 'Monits-fixUseAssertTrueInsteadOfAssertEqualsRule' 2015-08-10 21:03:28 +02:00
Andreas Dangel
5ca06bb2a1 Update changelog 2015-08-10 20:59:20 +02:00
Andreas Dangel
166057c355 Merge branch 'fixUseAssertTrueInsteadOfAssertEqualsRule' of https://github.com/Monits/pmd into Monits-fixUseAssertTrueInsteadOfAssertEqualsRule 2015-08-10 20:56:54 +02:00
Andreas Dangel
89a3d5dd1e #1384 NullPointerException in ConsecutiveLiteralAppendsRule 2015-08-01 20:28:38 +02:00
Damian Techeira
4a5a80197b Add CloneMethodMustBePublic rule
Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12023
2015-07-31 17:58:05 -03:00
Damian Techeira
445bd2d260 Add CloneMethodReturnTypeMustMatchClassName rule
Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D12031
2015-07-31 17:13:04 -03:00
Andreas Dangel
0bf765be04 Update changelog 2015-07-29 20:16:07 +02:00
Andreas Dangel
0850252bda Merge branch 'addUnnecessaryLiteralBooleanInTernaryOperatorRule' of https://github.com/Monits/pmd into Monits-addUnnecessaryLiteralBooleanInTernaryOperatorRule 2015-07-29 20:09:50 +02:00
Damian Techeira
454be6f1f1 Add UselessQualifiedThisRule
Summary: Look for Qualified This usages in the same class

Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D11981
2015-07-28 09:28:00 -03:00
Andreas Dangel
dea9d41dd7 Merge branch 'Monits-addCommentDefaultModifierRule' 2015-07-26 19:25:04 +02:00
Andreas Dangel
f963f76fd4 Update changelog, improve test for new CommentDefaultAccessModifier rule 2015-07-26 19:20:47 +02:00
Andreas Dangel
3b60cac700 Merge branch 'addCommentDefaultModifierRule' of https://github.com/Monits/pmd into Monits-addCommentDefaultModifierRule 2015-07-26 19:11:21 +02:00
Andreas Dangel
6b9d0fb5c8 Merge branch 'pmd/5.3.x' 2015-07-25 20:38:22 +02:00
Andreas Dangel
c5216fed79 Fix site build 2015-07-25 20:38:03 +02:00
Andreas Dangel
e299dffc2f Merge branch 'pmd/5.3.x' 2015-07-25 20:11:45 +02:00
Andreas Dangel
d182626618 Update release-process with github 2015-07-25 19:59:28 +02:00
Andreas Dangel
4ecb295b06 Fix version of pmd-java8 module 2015-07-25 19:59:07 +02:00
Andreas Dangel
0785cef364 Prepare next development version 2015-07-25 16:00:08 +02:00
Andreas Dangel
0671c2e478 [maven-release-plugin] prepare for next development iteration 2015-07-25 15:28:23 +02:00
Andreas Dangel
1348ed8e06 [maven-release-plugin] prepare release pmd_releases/5.3.3 2015-07-25 15:28:22 +02:00
Andreas Dangel
c2ec86bac5 Prepare pmd release 5.3.3 2015-07-25 15:16:54 +02:00
Andreas Dangel
53a1f5280c Create the site separately, so that javadoc aggreate can work 2015-07-25 15:10:19 +02:00
Andreas Dangel
9d8a2dd0a5 Use github page 2015-07-25 15:10:12 +02:00
Damian Techeira
df6f1afa46 Add check to Boxed booleans in UseAssertTrueInsteadOfAssertEquals rule
Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D11963
2015-07-24 12:03:07 -03:00
Damian Techeira
e0cd7adeef Add rule for unnecessary boolean in conditionals espressions
Summary: Add rule for unnecessary literals boolean in conditionals espressions

Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D11961
2015-07-23 17:07:15 -03:00
Damian Techeira
89e7d0433a Add default access modifier as comment rule
Summary: Add rule to look for methods and fields that have a default access modifier

Test Plan: mvn test

Reviewers: jmsotuyo

Reviewed By: jmsotuyo

Differential Revision: http://ph.monits.com/D11936
2015-07-22 15:31:19 -03:00
Andreas Dangel
e93e9224ae #1381 CPD Cannot use CSV/VS Renderers because they don't support encoding property 2015-07-19 22:34:57 +02:00
Andreas Dangel
df14ea9c95 #1379 PMD CLI: Cannot specify multiple properties 2015-07-13 19:50:40 +02:00
Andreas Dangel
617ca01a68 #1369 ConsecutiveLiteralAppends not detected properly on StringBuffer 2015-06-29 20:28:53 +02:00
Andreas Dangel
ee5885065e reformat, whitespace 2015-06-29 19:58:48 +02:00
Andreas Dangel
0b7cca49f1 fix typo 2015-06-28 21:56:55 +02:00
Andreas Dangel
8dc25abcfe #1376 CompareObjectsWithEquals fails for type annotated method parameter 2015-06-28 21:51:04 +02:00
Andreas Dangel
62202a5293 Merge branch 'bernardo-macedo-master' 2015-06-28 21:23:42 +02:00
Andreas Dangel
99294dafb6 Update changelog 2015-06-28 21:18:52 +02:00
Bernardo Macedo
1416d2492d Cleaning code 2015-06-24 23:31:21 -03:00
Bernardo Macedo
6b742dba22 Added support for WSDL rules 2015-06-24 23:23:08 -03:00
Andreas Dangel
2b92e22546 #1372 False Negative for CloseResource rule.
already fixed with #1375
2015-06-20 18:38:09 +02:00
Andreas Dangel
1b35a59997 #1375 CloseResource not detected properly 2015-06-20 18:15:02 +02:00
Andreas Dangel
46afa5c36a Merge branch 'pmd/5.3.x' into master 2015-06-06 19:40:33 +02:00
Juan Pablo Civile
39eb581134 Fix run.sh for paths with spaces
When redirecting arguments, "$@" must be used.

cherry-picked: 429e1a91a160c609c9b3bd4094ce2718b42793a1
cherry-picked: 59f5c8639277a572ae39128837e891ab1f178e0b
2015-06-06 19:38:02 +02:00
Andreas Dangel
59f5c86392 Update changelog 2015-06-06 19:34:44 +02:00
Andreas Dangel
99ff9fd68e Merge branch 'handle_spaces' of https://github.com/Monits/pmd into Monits-handle_spaces 2015-06-06 19:34:01 +02:00
Andreas Dangel
79ea3fae79 Merge branch 'pmd/5.3.x' into master 2015-06-06 19:32:41 +02:00
Juan Pablo Civile
429e1a91a1 Fix run.sh for paths with spaces
When redirecting arguments, "$@" must be used.
2015-06-05 18:51:20 -03:00
Andreas Dangel
ecdcc20bda Add a pmd-ui module, which can use java8 and javafx 2015-06-01 22:16:05 +02:00
Andreas Dangel
d28e4f1fb5 #1366 UselessParentheses false positive on multiple equality operators 2015-06-01 20:06:01 +02:00
Andreas Dangel
66c1191984 #1365 Aggregated javadoc report is missing 2015-05-31 14:01:40 +02:00
Andreas Dangel
42726428c5 Fix links on the integrations page 2015-05-31 12:14:45 +02:00
Andreas Dangel
19a13c0ab9 #1364 FieldDeclarationsShouldBeAtStartOfClass false positive using multiple annotations 2015-05-31 10:29:42 +02:00
Andreas Dangel
f9b3f4ce4a Merge branch 'pmd/5.3.x' into master 2015-05-22 19:46:19 +02:00
Andreas Dangel
00ff9f25ae Prepare next development version 2015-05-22 19:28:37 +02:00
Andreas Dangel
793af091c0 [maven-release-plugin] prepare for next development iteration 2015-05-22 18:23:42 +02:00
Andreas Dangel
2c99fbd5e5 [maven-release-plugin] prepare release pmd_releases/5.3.2 2015-05-22 18:23:41 +02:00
Andreas Dangel
2aa1942015 Prepare pmd release 5.3.2 2015-05-22 18:18:12 +02:00
Andreas Dangel
c34b55285b Adding back missing changelog entry for 5.3.1 2015-05-21 21:33:29 +02:00
Andreas Dangel
7e0cd20740 fix wrong copy-pasted comment 2015-05-20 20:40:29 +02:00
Andreas Dangel
869d4c7005 #1361 ShortVariable and ShortMethodName configuration 2015-05-20 20:34:32 +02:00
Andreas Dangel
b50e49777f #1355 NullPointerException in a java file having a single comment line 2015-05-18 21:17:16 +02:00
Andreas Dangel
a416513fc9 reformat, whitespaces 2015-05-18 21:14:12 +02:00
Andreas Dangel
357f206102 #1330 AvoidReassigningParameters does not work with varargs 2015-05-15 20:24:06 +02:00
Andreas Dangel
cc43e6f8be #1354 Complex FieldDeclarationsShouldBeAtStartOfClass false positive with Spring annotations 2015-05-15 16:06:29 +02:00
Andreas Dangel
3c316c2018 #1343 MethodNamingConventions for overrided methods 2015-05-15 15:33:40 +02:00
Andreas Dangel
cae16d39d7 #1353 False positive "Only One Return" with lambda 2015-05-13 21:33:30 +02:00
Andreas Dangel
4661d6a33d #1344 AbstractNaming should check reverse 2015-05-09 19:15:48 +02:00
Andreas Dangel
b5e7cbbaf3 verify #1349 VariableNamingConventions : underscore in final but at first position ? 2015-05-09 18:41:42 +02:00
Andreas Dangel
7d630f6cb3 verify #1347 False positive for GuardLogStatementJavaUtil 2015-05-09 18:37:02 +02:00
Andreas Dangel
bc41b00206 verify #1346 VariableNamingConventions do not work for method parameters 2015-05-09 18:31:48 +02:00
Andreas Dangel
171fdb877f #1345 UseCollectionIsEmpty throws NullPointerException 2015-05-09 18:25:12 +02:00
Andreas Dangel
12bbb65ebd Update fluido skin version to 1.4 2015-05-09 18:12:38 +02:00
Andreas Dangel
82c6e4f602 Update changelog 2015-05-09 15:11:20 +02:00
Andreas Dangel
19d18a65d3 Removing maven-plugin-pmd-build. This has been moved to https://github.com/pmd/build-tools 2015-05-09 15:08:35 +02:00
Romain PELISSE
8057a5c0df Add a new rule 'InvalidDependencyType' to pom rulesets 2015-05-09 00:45:07 +02:00
Andreas Dangel
3d73198ba9 verify #1340 UseStringBufferForStringAppends False Positive with ternary operator 2015-05-01 18:41:21 +02:00
Andreas Dangel
e2a7356ccb verify #1341 pmd:GuardDebugLogging violates LOGGER.debug with format "{}"
It's a duplicate of #1224
2015-05-01 18:33:16 +02:00
Andreas Dangel
a0d116ca6d #1335 GuardLogStatementJavaUtil should not apply to SLF4J Logger 2015-05-01 18:27:18 +02:00
Andreas Dangel
857ae074e1 #1342 UseConcurrentHashMap false positive (with documentation example) 2015-04-30 20:07:54 +02:00
Andreas Dangel
a2526cc87a Update changelog and add a small test for new rule ProjectVersionAsDependencyVersion 2015-04-30 19:54:03 +02:00
Andreas Dangel
bead232701 Merge branch 'pom_rulesets' of https://github.com/belaran/pmd into belaran-pom_rulesets 2015-04-30 19:40:39 +02:00
Andreas Dangel
770fc5763e Update project info reports, display modules after the main pages 2015-04-27 19:47:26 +02:00
Andreas Dangel
d0f5279f3f Merge branch 'pmd/5.3.x' into master 2015-04-20 21:45:28 +02:00
Andreas Dangel
fba55905b6 Prepare next development version 2015-04-20 21:30:15 +02:00
Andreas Dangel
a720b93431 [maven-release-plugin] prepare for next development iteration 2015-04-20 20:15:12 +02:00
Andreas Dangel
de7a81202f [maven-release-plugin] prepare release pmd_releases/5.3.1 2015-04-20 20:15:11 +02:00
Andreas Dangel
f93a7bc67e Prepare pmd release 5.3.1 2015-04-20 19:55:55 +02:00
Andreas Dangel
b6c12fe449 Added deprecated old name for UseSingleton/UseUtilityClass
#1059 and #1339
2015-04-20 19:46:16 +02:00
Andreas Dangel
fdb54ecc0e #1337 False positive "Avoid throwing raw exception types" when exception is not thrown 2015-04-18 18:21:11 +02:00
Andreas Dangel
7452c68689 Merge branch 'pmd/5.3.x' into master 2015-04-18 10:11:40 +02:00
Andreas Dangel
1910a6844c #1332 False Positive: UnusedPrivateMethod 2015-04-18 10:04:31 +02:00
Andreas Dangel
5dc9f86a06 Simplify SingleMethodSingleton rule 2015-04-16 20:15:24 +02:00
Andreas Dangel
a9cf5d0b73 whitespaces 2015-04-16 20:13:53 +02:00
Andreas Dangel
d885267e6c Update changelog, add license headers, add externalInfoUrl for new rules 2015-04-16 20:12:22 +02:00
Andreas Dangel
5438ea180c Merge branch 'master' of https://github.com/kshantaramanUFL/pmd into kshantaramanUFL-master 2015-04-16 19:55:15 +02:00
Andreas Dangel
3485acaa6f Merge branch 'pmd/5.3.x' into master 2015-04-16 19:53:12 +02:00
Andreas Dangel
342e0c4789 Update changelog 2015-04-16 19:28:52 +02:00
Andreas Dangel
a56f5545fa Merge branch 'fix-null-pointer-exceptions' of https://github.com/Vampire/pmd into Vampire-fix-null-pointer-exceptions 2015-04-16 19:21:47 +02:00
Romain PELISSE
054d3ce0c9 Add a new rulesets for Maven's POM rules 2015-04-16 13:34:02 +02:00
Karthik Shantaraman
4080a0f177 Update SingleMethodSingletonRule.java 2015-04-14 18:03:50 -07:00
Andreas Dangel
4d03c95158 #1338 The pmd-java8 POM bears the wrong parent module version 2015-04-14 19:50:32 +02:00
Andreas Dangel
6435cece2b #1338 The pmd-java8 POM bears the wrong parent module version 2015-04-14 19:49:09 +02:00
Björn Kautler
d8961a903a Fix NullPointerException in ClassScope.resolveGenericType() 2015-04-14 11:24:23 +02:00
Björn Kautler
f310138f9d Fix NullPointerException in ClassScope.qualifyTypeName() 2015-04-14 11:24:21 +02:00
Björn Kautler
e8c36b34f8 Make TypeSet resolvers null-safe 2015-04-14 11:24:20 +02:00
kshantaraman
4862f0db89 Added code comments 2015-04-13 17:39:46 -07:00
kshantaraman
f03883a793 Changed files to match naming conventions 2015-04-13 17:28:59 -07:00
kshantaraman
5d9ecfc203 Changed to follow coventions 2015-04-13 17:22:29 -07:00
Karthik Shantaraman
11470aeb56 Update SingleMethodSingletonRule.java
Minor Bug Fix
2015-04-13 16:44:17 -07:00
Karthik Shantaraman
828c99141c Updated design.xml file
Added the rules in Design
2015-04-13 16:14:27 -07:00
kshantaraman
2b9df33f99 Added PMD Rules for Singleton pattern violations. 2015-04-13 16:06:05 -07:00
Andreas Dangel
29a32bb2a7 #1333 Error while processing Java file with Lambda expressions 2015-04-13 20:01:28 +02:00
Andreas Dangel
85b6b3c0ff #1333 Error while processing Java file with Lambda expressions 2015-04-13 20:01:08 +02:00
Andreas Dangel
fa9a4705e6 Prepare next development version 2015-04-13 19:57:34 +02:00
Andreas Dangel
cf22d5841b Whitespaces 2015-04-13 19:22:53 +02:00
Andreas Dangel
63f1814c80 Define the goals for releaseing explicitly 2015-04-04 12:39:18 +02:00
Andreas Dangel
9ec438c97d Update project info reports, display modules after the main pages 2015-04-04 10:50:36 +02:00
Andreas Dangel
f8be558c5b Remove unneeded maven profiles 2015-04-04 10:50:09 +02:00
Andreas Dangel
15800d6378 Add Clover plugin back 2015-04-04 10:49:37 +02:00
Andreas Dangel
ed5b3608cd Define the goals for releaseing explicitly 2015-04-03 19:04:55 +02:00
Andreas Dangel
c44a89cce3 [maven-release-plugin] prepare for next development iteration 2015-04-01 20:06:39 +02:00
Andreas Dangel
4cb7c4166e Prepare next development version 2015-04-01 19:59:43 +02:00
Andreas Dangel
5c2f6bc962 [maven-release-plugin] prepare for next development iteration 2015-04-01 19:57:15 +02:00
1044 changed files with 50800 additions and 9116 deletions

81
.travis.yml Normal file
View File

@ -0,0 +1,81 @@
sudo: false
addons:
apt:
packages:
- oracle-java8-installer
ssh_known_hosts:
- web.sourceforge.net
language: java
jdk: oraclejdk8
before_install:
- bash .travis/setup-secrets.sh
- bash .travis/install-configure-maven.sh
- export M2_HOME=$HOME/apache-maven-3.3.9
- export PATH=$HOME/apache-maven-3.3.9/bin:${PATH}
install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
before_script: true
script:
- 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then bash .travis/build-pull-request.sh; fi'
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "${TRAVIS_SECURE_ENV_VARS}" = "true" ]; then bash .travis/build-push.sh; fi'
after_success: true
before_deploy: true
deploy:
provider: releases
api_key: ${GITHUB_OAUTH_TOKEN}
file_glob: true
file:
- pmd-dist/target/pmd-*.zip
- target/pmd-doc-*.zip
skip_cleanup: true
on:
tags: true
repo: pmd/pmd
condition: "${TRAVIS_SECURE_ENV_VARS} = true"
after_deploy: bash .travis/release.sh
notifications:
email:
recipients:
- adangel@users.sourceforge.net
on_success: always
on_failure: always
cache:
directories:
- "$HOME/.m2"
env:
global:
- secure: KBEuB6U1p5RQXSYe157AwydFr/zpXQPA0IChVCgZV+X1mMyy9ZtrjH1J1AXuviseDDXDbaT25sRnsvpl82rfRw2xOkMGXHy4N95/ylTSr8DjHxTao71BhXsvFycNobFva5y2EGNWqDvpS8I2oSZo7Qk4la3yep3rcJQvcy6RDbbhpDTbL1QMFyadunIBm0WtqbunrMqtjSqaoPsXz8TiQuxHvX4vEXzVbaxV1QQt79Vi+daa6wAV3mRQAugnx+UffsC8JqMxgm06usWeJgCJzxgm8E7clZCLmf53B2TL8dK6bIYbqyvOY3uFxitsTG0d8Z0GOJwXBgZNgbniTRO8ZJSty5eZP8LBybbjVLSL25DNTWtCjADUL/uySnXIEidlMt2N/3QmH7zrGAfAk/tIwKpdRca2GLLydeXf6PSkiahnPEkIY/QupcsOLELhdifpdOjb8QW1OenA+vUbNM9dccLwKnX6Fj9cu4VQG601AcYDr2eyhq8WYkr3wYdw/6KdUa3hmplowTBs+qguppP+eOSgGuEsy38KLtqnvm6WlHy6tcLmcVYKG3DmR1b7TWXsOXC6/VMH8BHBkvsF1QdRg9+Cgx07vX3Hw7roPiYzmaO9Ajs20ATsUfRskMuWCTeTSK5pN8X27veRCZlhFjeKQMDdmfVwzpAfRgKsl3TEn1I=
- secure: U1DfAv6acUUWe+dao/ZSDUX64JRadNJY16rITsdrM4ZNAJSuXpEY3p/LWcYjN7D49YmyutbXH9+L3KKQUQGrGXj9QTarfYvd8ZsKt4FK8yv7AFy+RQNIbAjNEHBzHx15p+srMheTaetl7aLwY0qhF+D/RtGapxHKyY4dBHrb0lp8VGyiCiL7Aop8GGskosi1mtirPBp/BStPZ2bEyxG0QzU5SsVWkJWwV9aWLPVAR/n7Xgx/6Gjl6Fed2c/WSrWi4vchm3Ny8pfTweOax3PGYYjBVxIfuX0mqmwuJsY7gNfXCfN3dPiPKGJPFy1pC+LGyGkklO5ReKFLd4O1ME6fU0dlIGfD6n+Q4H6/w9FHXegcKTfWIJm/MFa6vA/tJM5R6zJQuiTQJboHm/UmS/iQj76z0p6sK15Xp5vFId+/dHKqa8xY+Bt6HiXy6z401HOc8QcYBAf7TqhqUt/ZE7HN4be46uR90KmzIrWz6wEoDW7HfwQ9ZMbs55zoOXrvekyE9/gXskypO0p2JT3Y0vlvO27KQvIrSwI480kOVOrlyrYA+LZqlcKaayOuCuZh4lITQUYinUoZZict5joYthH+Cyh2zovoBpxsntDJdMnaZNLtSC7hlhpbMBYaT2y1O6vZH5Yix0mxuDvs/x6ogP5CNBeUYlXhaL+g4GnwKyr0ZA0=
- secure: "ElWjttpoMwqezP2zyHkx7CiPON/mRLUW7SsSlEqdlTUYRIaSaL7sShUORJUzj58U/Nnfi/eY4Rweo0CtVu20sG16s9B4adnmPS44LAitztybPR/co93gN9qb8jiIl41nVcOJq+Rut2Z4nr8AGRhVCG9Drg4+DreCqQ4DE5ZD6J99GN0IFGrREt59HQUlBlT9jD0AndK/1GQ6kWAenuSREE2P5ih59rf6FrrfddQO5iqyFFoaHek3JiOmpaLK+z7i4EvMKsAJEooFNuGhHVuyaJJRRZHAncGiQ+uW/yL7G5rY51G6YSNJczzEtfrRg+YrIUbokUPmifSIbnXO/AIZRAq1dMhA8exRc5n+75RB1X164qm4a+yggdybFBh0L59xu606PJQJAuWy+x10nled7FAVXiotxbB0r2bhlVmWFEN+FWPqXg2rVkHvw6+5PM67rG5g1LCgjKzb9I6JWPiVI+EMn8Pw8gryL2Sdqtl08Da0Ypbl2ZK/afU4CEPEKnrDc9ecXKjacehTYwGS48V213XvArcmoEpsyZDRSMTrvK3/e29GEaxoK/ZzWJylpeOtsICEEFYEBEiDsiIW4C50MIUPT2xHV6MaPQzhkuwrbQ6QFYzHzihBaiQuMmXUQ4DMb3fOPkNZAQHQo8CgJ78IcbCABAoGv9mu/fo2KoLo11U="
- secure: "otZkFNhApMofp2Jl2baZdpNEPcTa79Xc9wyOw1gl1+ubCLtOGr32FDUSr0HQWKrGXcYZR4bc0A80hx0/ykZ/twJaRAabcNYtjwRMDKKrp3plvp8RTZlB1QW85nsdmk3qmHACzc94wKnmcaDohM5FPxnWspZG5Y4ejYX4HEK6r1fwL4FjMPSLd5QW8yCaAc7dpBSm2UyIXuuDjkekXblJFe8ydbf9aF97WKJMCwqIs9Zo5oJa2pnWCw47ixwjVdkaH5x5727I+YmFqn5rjdEideUFEAlggqMaxuOtfYhuG/8k5W3Q/+WX+G7rEPTcemjmaosbbpoOUE0YUHV3Wi3R5D66NuWIpQwX6kw4rTwL0YIh//0aNb8jv4Z8KwkiTMrYuj0we5tXzARp3yYn56P0JBAm6BihNhfEBv06655Tg5LUsWqUTZCl3KJhwtO1N+OuOkE5qoZm59knq6DeZOsYWAVb3MpzklP06kXGYTjb44PVMUc6ynuuZjgPJDv/0906feA3REHBJVxd3PvJp1c8VvQSeW3ndghEz0akJHY/jxV1rJZAZC1ZeshYUpBNmh0sFDty/UE43IvIB4EInypQHyTtQvMc6LuLjTeu2E5ZMsA3udj66EMrYm4Y2eheJycSfttDqzhsKXIVJ4LmA/xtDR01cp1jsqbbZBhVI67rA40="
- secure: "mmHRnK/8CHfgtwaTN3MgjFD1R8EVQhIb/a0Aag3gPaHWW52Ex6xWG7GsF4kRcdzHdIdrQxHZTiDa2oVMWbnQ16CAu4dZJadwTxhBW4JmE1tsi2C6i+uwMBPvnKBXHwt+QOAqNB0L/ByYwWLkucSLoyRs6qU0i7sJ3ZC/EPCuLI8VfBlFUVegSbp2WmclmFnxOi5MKr15Zwd8BGgyWUsvd1OHxhvO3Xr/ZPO4R+1kIgyojloTMu6oGM/shYgsrUXgmI/WvZRTq+25SRCjUmATJtuDXXgVeJtYabi/+Zju5Z7K06oaKvFYM+BgZWPmGQkVCxKVjSlug0rx6+qgRKIf/B/cPxmQDS0ZZVDmDcbxeibBL9JhRqIDwDb0XS9t1qBXvIJ5E4ZmdX/XuvLCnC4xJptu/vHyKl1wbRM3dcXEBk8J0knJc4JvY2yupF3LS32sfEHftLwzr63U3/0dOQvsCSJRBy5zgI8ieABUZAeZmmaQ6RCGOTEYrGO2G4CCF2uVq4YdrCOsfmrb0DzH8llNMkXKzXlITRvmkuBlTRRKxGnPzS3vf0iicdAkmTiU5u7lArFFc7IKcW4ypO+RKDTUpq74K+UZBI9eBjV7Po368EO8epJ5aIx32a2kyS/hYWkS/dZh7I0fNZa2qBUceZO/KZGRjH4dQFW9t0J9Q7LLXJY="
- secure: "geOU/7VR83KYTOCR5XkgFqnHJEnXeB6hNDE7UFcN4ZsL9uVLhxlDVWV3ujJ87nyBzggG1KfSnUx11UwOQrbBl0K6sEXo/B2q5ytOsWoSLi7+0qm/uhhw/DTBOq57p8TIDKFM7rDhO7uajSn7Y86LeZkh9wIs5265Fh1yhCkiPbczDUMsX4P0GGg2qgkIKSBw4DZf6sPDc4xjJq/4/cLnjXo/K0ZYAIoSLqDfe1gmkzMtQlad+1t8Lwv/gOJ4BNRF4a5aEvGF6kbFovFoeFWCQTKlkn6VJtY+BETGKW2RH9efGeMs7JbBbNm+nnpoNsbJ0gdmGlhSbWT8enIm72/P0ThTBJWVcLJ30tUd0UeYD9C49wbJ3RHSxsoUKP9YhHJ+XKNx+8irkJ8LPCkNMQEFE153gEVvU7tCgah9Uq6laYZv9cQE0dWzNt3//Ymls8BzY38Ha4PbrIIJqEuWwnAX6ZgTgzVtXx1AJjkDFG9KFKPhN7NfNMbh7rn5C84a1h5zrIydm+6RcIBC+xTLDEiN7djiquf3PcNtyGLcO8dNN4Uv8iU0Jw8ch3+w0PJO53v5py+IS1V8pwwYaYF2iVPOoziS0tP8MsgYVGwpTZhvz3v8x0ge8r6KJE4zdvoPtCRNr2Oo3sJGYqkt86Hu6agKFiljP5AgJNx7iQD5GQn6J3w="
- secure: "gqyPF3d75JuwZptnQQQKO6rGUILXGO09y9dZhShdX8qq5Mexa2ISk77Y/b0yyAdhJMgEglls5cWlbHkwCAB0i4yL25RE5CtQUe4er+CIKwBIs0M56ghbcOwWAFB/cXeyyWmXDHBVnVUeKm7IJ34txsEclnMzQSR/DInSzsCFMUQok8HEaWZNssMjyRgo6goKGdG5vNWGfLLY7mKGMe/6PpYJD0G8k+Na08aX06ZWph38He8O3imUAngoQrxiSp0UYmnHDkigbV7S2LdZOsj7kMxkiyigzK/P1eygHVbFAhohLroaqS9B4CBK7QeOyup2vxVKqJVzFwOCylD0786CImvaG2ZYMtvJkapvaEE0mdMlyYpHgdIkmHZu28aMW7hXEhxHyBAxKuPcj5eGCGziO+ztCvfYIA9CGs1uA4KLrED7SahvB0oXnt3KTFdRc857cWcpp2NmRKihLzVdgHlmT8zcYaec3zP1VdMoa2bmLHoaZtAwvMTcAG56FcET1p7f9v+uiU88ZeptEjTJfpAWlq34tpwZXNyIQi5IROocSHM+PKTgLAsAMP5klGascr8E0sEzREl7tg8hqEwXKym/sVKyT+HMptA3UZcrZZhm07/cmQ0pUVvbV9QDb0MzU3O2wF7vT3U7R7Fb1u0LxMjblPyEazTp8ldabVRJREwlsDc="
- secure: "JIhuqaI0i+zvuqqXiQBHpuKr7AQ8jfk6Gbr8Qgiq4yJtdEWXZGxnAT9BmlbjkgT7ABXvLgxf2CIdUOMo1yYfBlxQL/y5+e89jaVpYF3tvNAzYQ1e12VzQRsd/jDb7qvm7tw3rDHEn3dSEot7Q6KbPcL6WzWJINVMCCmOgvq9gKHgE6Y5q5EgZ5rxiXyuO27ndzcbxaor4PIaiSzHO9+AJQ7p2zDLP+kG4nKVTBX0l9VoKiYFhIpIhpbigi3jyLDMDRiWpwTWZC6P8/RXfZg/lc5ADOuM2DM8oXPpZuqOa/g31LWQOSCuEnQ1G16vbLgipSPpgAc7jYWD5cywhG9dLkiKaZDh5x0meLM2RoAgz6eAnQfTTqJ68OM9o9yXjubEedsNpNRAr9/DXMd+fbh10W2vbvL5HCNB3lic3anehhR9le7PLuEKxg654wXt3KM2PZGVWbotIyBK0CvGzqGkppvwT23QdDDqSdkWuGQIhGQ0xBOdYkwebycxP5wwPUmObG+mymQ1Be2BXvmghttsiJdKlt4CVSYOJUMus6kU32G95hdTgKblsX4J1Of2i1nYsjyMKh3k945tqXwQrIsxOOQug0oIkz24zlLaOaQcorWtJ6Y1HPaZKpVIFUEF0y8Uq/O4oB2bOYC6WDUQfpj7nRG6xbi+BeBS84m1ttCEk4g="
# Secure Keys, that need to be set for snapshot builds
#
# CI_DEPLOY_USERNAME - the user which can upload net.sourceforge.pmd:* to https://oss.sonatype.org/
# CI_DEPLOY_PASSWORD
#
# SONAR_TOKEN - the token used to update https://sonarqube.com/dashboard/?id=393826
#
# PMD_SF_USER - the sourceforge user, which is used to upload created binaries to sf files section. Note: an ssh key is
# required. See "before_install".
#
#
# Secure Keys, that need to be set for releases:
#
# PMD_SF_APIKEY - used to make the new release the default file in the files section. See https://sourceforge.net/auth/preferences/
# under "Release API Key"
#
# CI_SIGN_KEYNAME
# CI_SIGN_PASSPHRASE
# add the encrypted GPG keyring file to repo (https://docs.travis-ci.com/user/encrypting-files/#Automated-Encryption), decrypt it and install it at the beginning of .travis-deploy.sh
#
# GITHUB_OAUTH_TOKEN - the token used to upload the binaries to github releases
#

View File

@ -0,0 +1,43 @@
#
# Helper functions to run a chatty, long task in the background,
# redirecting the output to file and keep travis happy by regularly
# writing to the log.
#
# This is to workaround the travis log length limit of 4MB
# Solution from http://stackoverflow.com/questions/26082444/how-to-work-around-travis-cis-4mb-output-limit/26082445#26082445
#
# Source this file into the shell script, that needs it.
#
# expected variables
# Name | Example Value
# PING_SLEEP | 30s
# BUILD_OUTPUT | /tmp/build-step-logfile.out
# PING_PID_FILE | /tmp/build-step-ping.pid
touch $BUILD_OUTPUT
dump_output() {
echo Tailing the last 100 lines of output:
tail -100 $BUILD_OUTPUT
}
kill_ping() {
if [ -e $PING_PID_FILE ]; then
PING_LOOP_PID=$(cat $PING_PID_FILE)
kill $PING_LOOP_PID
rm $PING_PID_FILE
fi
}
error_handler() {
kill_ping
echo ERROR: An error was encountered with the build.
dump_output
exit 1
}
# If an error occurs, run our error handler to output a tail of the build
trap 'error_handler' ERR
# Set up a repeating loop to send some output to Travis.
bash -c "while true; do echo \$(date) - building ...; sleep $PING_SLEEP; done" &
PING_LOOP_PID=$!
echo "$PING_LOOP_PID" > $PING_PID_FILE

View File

@ -0,0 +1,3 @@
#!/bin/bash
set -ev
mvn verify -B -V

46
.travis/build-push.sh Normal file
View File

@ -0,0 +1,46 @@
#!/bin/bash
set -ev
VERSION=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
echo "Building PMD ${VERSION} on branch ${TRAVIS_BRANCH}"
if [[ "$VERSION" != *-SNAPSHOT && "$TRAVIS_TAG" != "" ]]; then
# release build
mvn deploy -Possrh,pmd-release -B -V
elif [[ "$VERSION" == *-SNAPSHOT ]]; then
# snapshot build
mvn deploy -Possrh -B -V
else
# other build. Can happen during release: the commit with a non snapshot version is built, but not from the tag.
mvn verify -Possrh -B -V
# we stop here - no need to execute further steps
exit 0
fi
bash .travis/build-site.sh
# create pmd-doc archive
(
cd target
mv staging pmd-doc-${VERSION}
zip -qr pmd-doc-${VERSION}.zip pmd-doc-${VERSION}/
)
# Uploading pmd distribution to sourceforge
if [[ "$TRAVIS_TAG" != "" || "$VERSION" == *-SNAPSHOT ]]; then
rsync -avh pmd-dist/target/pmd-*-${VERSION}.zip target/pmd-doc-${VERSION}.zip ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd/${VERSION}/
rsync -avh src/site/markdown/overview/changelog.md ${PMD_SF_USER}@web.sourceforge.net:/home/frs/project/pmd/pmd/${VERSION}/ReadMe.md
fi
if [[ "$VERSION" == *-SNAPSHOT && "$TRAVIS_BRANCH" == "master" ]]; then
# Uploading snapshot site...
rsync -ah --stats --delete target/pmd-doc-${VERSION}/ ${PMD_SF_USER}@web.sourceforge.net:/home/project-web/pmd/htdocs/snapshot/
fi
if [[ "$VERSION" == *-SNAPSHOT && "$TRAVIS_BRANCH" == "master" ]]; then
# only do a clean build for sonar, if we are executing a snapshot build, otherwise we can't reuse the build from above for the release
bash .travis/build-sonar.sh
fi

18
.travis/build-site.sh Normal file
View File

@ -0,0 +1,18 @@
#!/bin/bash
set -ev
export PING_SLEEP=30s
export BUILD_OUTPUT=/tmp/build-site.out
export PING_PID_FILE=/tmp/build-site-ping.pid
source .travis/background-job-funcs.sh
# Run the build, redirect output into the file
mvn site site:stage -Psite -B -V >> $BUILD_OUTPUT 2>&1
# The build finished without returning an error so dump a tail of the output
dump_output
# nicely terminate the ping output loop
kill_ping

18
.travis/build-sonar.sh Normal file
View File

@ -0,0 +1,18 @@
#!/bin/bash
set -ev
export PING_SLEEP=30s
export BUILD_OUTPUT=/tmp/build-sonar.out
export PING_PID_FILE=/tmp/build-sonar-ping.pid
source .travis/background-job-funcs.sh
# Run the build, redirect output into the file
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.host.url=https://sonarqube.com -Dsonar.login=${SONAR_TOKEN} -B -V >> $BUILD_OUTPUT 2>&1
# The build finished without returning an error so dump a tail of the output
dump_output
# nicely terminate the ping output loop
kill_ping

1
.travis/id_rsa.pub Normal file
View File

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8yHVLHYDsKui8tYg/sFvkDqcs97pEZz0BzK9HtBF4O+/It1drRYRdUAFfjoImfprpKSxkJCTglHixGRp24eNaZ6woWVJ4/bmiMkEqEZAjr1NZ3qw7zIruMJMSkCV+YTtmL4cYcZlvMRPzzOZOnFbV05oi79oy41MUFHYjolK9QxMFNsVNN5iyzFxM3HqSFozz+ylKbFBtDk6ZHZQNRL/Xl2V9DJ69fVzjG4OZfcWNGmmKHHARmsnJyUOMeeKpLjDOe1M6ZdI8HkXWac8yCr9JTETNZZwemZAcS/RKoKCDqfIUOzkZfIPmyaznfVetTGsMi7yQrJhAyjznuNGF4+3lfgTcmRF8wz5FCeUkdYTmy2wNSFi5HiLPfC5OgRtjKzC6yb8rbRjDx6XQ2ph15PKOaXwzk49TaMc0xJvoiGDMZaTU0iTm3Y1/QUtfLvo3/jGMbtUdV3soWpuBAV2JUI4aB5xdLX9iNmcrVzoUe3y9DWuuTX46eoCvpUNXv/DXKhQw1D7xd7J67db5qUck/Akiqi0JR+e0SoBJvZFtYwVNLGC2bIJ/s8SR8X5Zp+1+ypf3WYjIylxQTkO1r4NfI0Cd9qXg7nmUrHAU7Z6xtJmUK8ZWzSST4wul8WkRJURtODLxt5firtlKhyZ93t9Mjuk6mATIPxr/b3x20T+IH463kw== ssh key for pmd. used for travis accessing sourceforge and github.

View File

@ -0,0 +1,15 @@
#!/bin/bash
set -ev
# remember the current directory
SOURCE_HOME=$PWD
cd $HOME
wget -q http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar zxf apache-maven-3.3.9-bin.tar.gz
chmod +x apache-maven-3.3.9/bin/mvn
echo "MAVEN_OPTS='-Xms1g -Xmx1g'" > .mavenrc
mkdir -p .m2
cp $SOURCE_HOME/.travis/travis-toolchains.xml .m2/toolchains.xml
cp $SOURCE_HOME/.travis/travis-settings.xml .m2/settings.xml

66
.travis/release.sh Normal file
View File

@ -0,0 +1,66 @@
#!/bin/bash
set -ev
RELEASE_VERSION=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
# Deploy to ossrh has already been done with the usual build. See build-push.sh
# The site has been built before, the files have already been uploaded to sourceforge.
# Since this is a release, making the binary the new default file...
curl -H "Accept: application/json" -X PUT -d "default=windows&default=mac&default=linux&default=bsd&default=solaris&default=others" \
-d "api_key=${PMD_SF_APIKEY}" https://sourceforge.net/projects/pmd/files/pmd/${RELEASE_VERSION}/pmd-bin-${RELEASE_VERSION}.zip
# Assumes, the release has already been created by travis github releases provider
RELEASE_ID=$(curl -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" https://api.github.com/repos/pmd/pmd/releases/tags/pmd_releases/${RELEASE_VERSION}|jq ".id")
RELEASE_NAME="PMD ${RELEASE_VERSION} ($(date -u +%d-%B-%Y))"
RELEASE_BODY=$(tail -n +3 src/site/markdown/overview/changelog.md) # skips the first 2 lines - the heading 'PMD Release Notes'
RELEASE_BODY="${RELEASE_BODY//$'\\'/\\\\}"
RELEASE_BODY="${RELEASE_BODY//$'\r'/}"
RELEASE_BODY="${RELEASE_BODY//$'\n'/\\r\\n}"
RELEASE_BODY="${RELEASE_BODY//$'"'/\\$'"'}"
cat > release-edit-request.json <<EOF
{
"name": "$RELEASE_NAME",
"body": "$RELEASE_BODY"
}
EOF
echo "Updating release at https://api.github.com/repos/pmd/pmd/releases/${RELEASE_ID}..."
RESPONSE=$(curl -i -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" -H "Content-Type: application/json" --data "@release-edit-request.json" -X PATCH https://api.github.com/repos/pmd/pmd/releases/${RELEASE_ID})
if [[ "$RESPONSE" != *"HTTP/1.1 200"* ]]; then
echo "Request:"
cat release-edit-request.json
echo
echo "Response:"
echo "$RESPONSE"
else
echo "Update OK"
fi
echo "Adding the site to pmd.github.io..."
# clone pmd.github.io. Note: This uses the ssh key setup earlier
# In order to speed things up, we use a sparse checkout - no need to checkout all directories here
mkdir pmd.github.io
(
cd pmd.github.io
git init
git config user.email "adangel+pmd-bot@users.sourceforge.net"
git config user.name "Andreas Dangel (PMD Releases)"
git config core.sparsecheckout true
git remote add origin git@github.com:pmd/pmd.github.io.git
echo "latest/" > .git/info/sparse-checkout
git pull --depth=1 origin master
rsync -a ../target/pmd-doc-${RELEASE_VERSION}/ pmd-${RELEASE_VERSION}/
git add pmd-${RELEASE_VERSION}
git commit -q -m "Added pmd-${RELEASE_VERSION}"
git rm -qr latest
cp -a pmd-${RELEASE_VERSION} latest
git add latest
git commit -q -m "Copying pmd-${RELEASE_VERSION} to latest"
git push origin master
)

BIN
.travis/secrets.tar.enc Normal file

Binary file not shown.

19
.travis/setup-secrets.sh Normal file
View File

@ -0,0 +1,19 @@
#!/bin/bash
set -ev
if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "${TRAVIS_SECURE_ENV_VARS}" != "true" ]; then
echo "Not setting up secrets (TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} TRAVIS_SECURE_ENV_VARS=${TRAVIS_SECURE_ENV_VARS})."
exit 0
fi
openssl aes-256-cbc -K $encrypted_5630fbebf057_key -iv $encrypted_5630fbebf057_iv -in .travis/secrets.tar.enc -out .travis/secrets.tar -d
pushd .travis && tar xfv secrets.tar && popd
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
mv .travis/id_rsa "$HOME/.ssh/id_rsa"
chmod 600 "$HOME/.ssh/id_rsa"
mkdir -p "$HOME/.gpg"
gpg --batch --import .travis/release-signing-key-82DE7BE82166E84E.gpg
rm .travis/secrets.tar
rm .travis/release-signing-key-82DE7BE82166E84E.gpg

View File

@ -0,0 +1,29 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>ossrh</id>
<username>${env.CI_DEPLOY_USERNAME}</username>
<password>${env.CI_DEPLOY_PASSWORD}</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles>
<profile>
<id>ossrh</id>
<properties>
<gpg.keyname>${env.CI_SIGN_KEYNAME}</gpg.keyname>
<gpg.passphrase>${env.CI_SIGN_PASSPHRASE}</gpg.passphrase>
</properties>
</profile>
</profiles>
<activeProfiles/>
</settings>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<!-- place this file in ${user.home}/.m2/toolchains.xml -->
<!-- see: https://github.com/travis-ci/travis-cookbooks/blob/master/cookbooks/travis_java/templates/ubuntu/jdk_switcher.sh.erb -->
<toolchain>
<type>jdk</type>
<provides>
<version>1.6</version>
</provides>
<configuration>
<jdkHome>/usr/lib/jvm/java-6-openjdk-amd64</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.7</version>
</provides>
<configuration>
<jdkHome>/usr/lib/jvm/java-7-openjdk-amd64</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
</provides>
<configuration>
<jdkHome>/usr/lib/jvm/java-8-oracle</jdkHome>
</configuration>
</toolchain>
</toolchains>

View File

@ -1,27 +1,58 @@
[![PMD - Don't shoot the messenger][PMDLogo]][website]
# PMD
PMD
===
[![Build Status](https://travis-ci.org/pmd/pmd.svg?branch=master)](https://travis-ci.org/pmd/pmd)
## About
About
-----
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks,
unnecessary object creation, and so forth. It supports Java, JavaScript, XML, XSL.
unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex, XML, XSL.
Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in
Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript.
Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript, Salesforce.com Apex, Perl, Swift.
## Source
Source
------
Our latest source of PMD can be found on [GitHub]. Fork us!
The current status of this repo can be seen at [BuildHive].
News and Website
----------------
### How to build PMD?
You'll need to have a `~/.m2/toolchains.xml` file setup with jdk 1.6 (for pmd 5.3.x), jdk 1.7 (for pmd 5.4.x and pmd 5.5.x)
and jdk 1.8 (for some features in pmd 5.5.x). See [maven toolchains](https://maven.apache.org/guides/mini/guide-using-toolchains.html).
A example file can be found here: [example-toolchains.xml](https://github.com/pmd/pmd/blob/master/example-toolchains.xml).
Use maven in the top-level directory:
mvn clean package
This will create the zip files in the directory `pmd-dist/target`:
cd pmd-dist/target
ls *.zip
That's all !
### How to build the documentation (maven site)?
Building the maven site is done with the following commands:
mvn clean install -DskipTests=true
mvn install site site:stage -Psite
You'll find the built site in the directory `target/staging/`.
### Bug Reports
We are using Sourceforge for bug tracking. Please file your bugs at <https://sourceforge.net/p/pmd/bugs/>.
### Pull Requests
Pull requests are always welcome: <https://github.com/pmd/pmd/pulls>
## News and Website
More information can be found on our [Website] and on [SourceForge].
[PMDLogo]: http://pmd.sourceforge.net/pmd_logo.png
[GitHub]: https://github.com/pmd/pmd
[BuildHive]: https://buildhive.cloudbees.com/job/pmd/
[Website]: http://pmd.sourceforge.net
[Website]: https://pmd.github.io
[SourceForge]: https://sourceforge.net/projects/pmd/

155
do-release.sh Executable file
View File

@ -0,0 +1,155 @@
#!/bin/bash
# verify the current directory
if [ ! -f pom.xml -o ! -d ../pmd.github.io ]; then
echo "You seem to be in the wrong working directory or you don't have pmd.github.io checked out..."
echo
echo "Expected:"
echo "* You are currently in the pmd repository"
echo "* ../pmd.github.io is the pmd.github.io repository"
echo
exit 1
fi
RELEASE_VERSION=
DEVELOPMENT_VERSION=
CURRENT_BRANCH=
echo "-------------------------------------------"
echo "Releasing PMD"
echo "-------------------------------------------"
# see also https://gist.github.com/pdunnavant/4743895
CURRENT_VERSION=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.5.0:exec)
RELEASE_VERSION=${CURRENT_VERSION%-SNAPSHOT}
CURRENT_BUILD_NUMBER=$(echo ${RELEASE_VERSION} | sed -e 's/[0-9]*\.//g')
NEXT_BUILD_NUMBER=$(expr ${CURRENT_BUILD_NUMBER} + 1)
DEVELOPMENT_VERSION=$(echo ${RELEASE_VERSION} | sed -e "s/[0-9][0-9]*\([^0-9]*\)$/${NEXT_BUILD_NUMBER}/")
DEVELOPMENT_VERSION="${DEVELOPMENT_VERSION}-SNAPSHOT"
# http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch
CURRENT_BRANCH=$(git symbolic-ref -q HEAD)
CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
echo "RELEASE_VERSION: ${RELEASE_VERSION}"
echo "DEVELOPMENT_VERSION: ${DEVELOPMENT_VERSION}"
echo "CURRENT_BRANCH: ${CURRENT_BRANCH}"
echo
echo "Is this correct?"
echo
echo "Press enter to continue..."
read
export RELEASE_VERSION
export DEVELOPMENT_VERSION
export CURRENT_BRANCH
echo "* Update version/release info in **src/site/markdown/overview/changelog.md**."
echo
echo " ## $(date -u +%d-%B-%Y) - ${RELEASE_VERSION}"
echo
echo "* Ensure all the new rules are listed in a the proper file:"
echo " pmd-core/src/main/resources/rulesets/releases/${RELEASE_VERSION}.xml file."
echo
echo "* Update **../pmd.github.io/index.html** to mention the new release"
echo
echo "Press enter to continue..."
read
echo "Committing current changes (pmd)"
git commit -a -m "Prepare pmd release ${RELEASE_VERSION}"
(
echo "Committing current changes (pmd.github.io)"
cd ../pmd.github.io
git commit -a -m "Prepare pmd release ${RELEASE_VERSION}"
git push
)
mvn -B release:clean release:prepare \
-Dtag=pmd_releases/${RELEASE_VERSION} \
-DreleaseVersion=${RELEASE_VERSION} \
-DdevelopmentVersion=${DEVELOPMENT_VERSION}
echo
echo "Tag has been pushed.... now check travis build: <https://travis-ci.org/pmd/pmd>"
echo
echo
echo "Submit news to SF on <https://sourceforge.net/p/pmd/news/> page. You can use"
echo "the following template:"
echo
cat <<EOF
PMD ${RELEASE_VERSION} released
* minor version with lots of bug fixes
* Changelog: https://pmd.github.io/pmd-${RELEASE_VERSION}/overview/changelog.html
* Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F${RELEASE_VERSION}
* Fixed Bugs: https://sourceforge.net/p/pmd/bugs/milestone/PMD-${RELEASE_VERSION}/
* Documentation: https://pmd.github.io/pmd-${RELEASE_VERSION}/
EOF
echo
echo "Press enter to continue..."
read
echo
echo "Check the milestone on sourceforge:"
echo "<https://sourceforge.net/p/pmd/bugs/milestones>"
echo
echo
echo
echo "Prepare Next development version:"
echo "* Move version/release info from **src/site/markdown/overview/changelog.md** to **src/site/markdown/overview/changelog-old.md**."
echo "* Update version/release info in **src/site/markdown/overview/changelog.md**."
echo
cat <<EOF
# PMD Release Notes
## ????? - ${DEVELOPMENT_VERSION}
The PMD team is pleased to announce PMD ${DEVELOPMENT_VERSION%-SNAPSHOT}.
This is a bug fixing release.
### Table Of Contents
* [New and noteworthy](#New_and_noteworthy)
* [Fixed Issues](#Fixed_Issues)
* [API Changes](#API_Changes)
* [External Contributions](#External_Contributions)
### New and noteworthy
### Fixed Issues
### API Changes
### External Contributions
EOF
echo
echo "Press enter to continue..."
read
git commit -a -m "Prepare next development version"
git push origin ${CURRENT_BRANCH}
echo
echo
echo
echo "Verify the new release on github: <https://github.com/pmd/pmd/releases/tag/pmd_releases/${RELEASE_VERSION}>"
echo
echo
echo "Send out an announcement mail to the mailing list:"
echo "To: PMD Developers List <pmd-devel@lists.sourceforge.net>"
echo "Subject: [ANNOUNCE] PMD ${RELEASE_VERSION} Released"
echo "Body: !!Copy Changelog!!"
echo
echo
echo "------------------------------------------"
echo "Done."
echo "------------------------------------------"
echo

39
example-toolchains.xml Normal file
View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<!-- place this file in ${user.home}/.m2/toolchains.xml -->
<!-- adjust the paths to jdkhome -->
<toolchain>
<type>jdk</type>
<provides>
<version>1.6</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.6</jdkHome> <!-- Linux -->
<jdkHome>/Library/Java/JavaVirtualMachines/jdk1.6.0_45.jdk/Contents/Home</jdkHome> <!-- MacOSX -->
<jdkHome>C:\\java\\edition\\jdk1.6.0_45</jdkHome> <!-- Windows -->
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.7</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.7</jdkHome> <!-- Linux -->
<jdkHome>/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home</jdkHome> <!-- MacOSX -->
<jdkHome>C:\\java\\edition\\jdk1.7.0_80</jdkHome> <!-- Windows -->
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.8</jdkHome> <!-- Linux -->
<jdkHome>/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home</jdkHome> <!-- MacOSX -->
<jdkHome>C:\\java\\edition\\jdk1.8.0_92</jdkHome> <!-- Windows -->
</configuration>
</toolchain>
</toolchains>

View File

@ -1,36 +0,0 @@
<project name="generate-jdk4-pom"
default="generate-xdocs">
<target name="generate-xdocs">
<path id="tools.classpath">
<fileset dir="${lib}">
<include name="pmd-build-*.jar"/>
</fileset>
</path>
<taskdef name="pmd-build"
classname="net.sourceforge.pmd.ant.PmdBuildTask">
<classpath refid="tools.classpath"/>
</taskdef>
<echo>Generating documentation into ${target}, into ${rules.src}</echo>
<mkdir dir="${target}"/>
<pmd-build siteXml="${siteXml}"
rulesDirectory="${rules.src}"
target="${target}"/>
</target>
<!--
Unit test of this task
Should be run from tools/ant directory
-->
<target name="test">
<antcall target="generate-xdocs">
<param name="target" value="target-test"/>
<param name="lib" value="../lib"/>
<param name="rules.src" value="../../src/site/xdocs"/>
</antcall>
</target>
</project>

View File

@ -1,17 +0,0 @@
<project name="pmd" default="ruleset-docs" basedir="../">
<!--
Properties required to call this script:
target.docs, directory where to store the rules directory
-->
<property name="rule-format" value="build/xslt/rule-format.xsl"/>
<property name="rules-index" value="build/xslt/rules-index.xsl"/>
<target name="ruleset-docs">
<mkdir dir="${target.docs}/rules" />
</target>
</project>

View File

@ -1,270 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
These are default Java conventions from Eclipse 3.3.2 with the following changes:
1) Line lengths to 120
2) Disable all Comment formatting options
3) Enum constants always wrap to new line
-->
<profiles version="11">
<profile kind="CodeFormatterProfile" name="PMD" version="11">
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="8"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="mixed"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
</profile>
</profiles>

View File

@ -1,73 +0,0 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>gpg-settings</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>gpg-settings</id>
<properties>
<!-- this key will be used by the maven gpg plugin during release -->
<gpg.keyname>your-gpg-key</gpg.keyname>
<gpg.passphrase>your-passphrase</gpg.passphrase>
</properties>
</profile>
</profiles>
<servers>
<!-- to upload to sonatype maven central.
See https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide -->
<server>
<id>sonatype-nexus-snapshots</id>
<username>your-sonatype-jira-login</username>
<password>your-sonatype-jira-password</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>your-sonatype-jira-login</username>
<password>your-sonatype-jira-password</password>
</server>
<server>
<id>pmd-repo</id>
<username>your-sf-login</username>
<password>your-sf-pwd</password>
<!-- or use instead of the password your private key with optional passphrase
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
-->
</server>
<server>
<id>pmd-site</id>
<username>your-sf-login</username>
<password>your-sf-pwd</password>
<!-- or use instead of the password your private key with optional passphrase
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
-->
</server>
<server>
<id>pmd-snapshot-repo</id>
<username>your-sf-login</username>
<password>your-sf-pwd</password>
<!-- or use instead of the password your private key with optional passphrase
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
-->
</server>
<server>
<id>pmd-snapshot-site</id>
<username>your-sf-login</username>
<password>your-sf-pwd</password>
<!-- or use instead of the password your private key with optional passphrase
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
-->
</server>
</servers>
</settings>

View File

@ -1,191 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
<relativePath />
</parent>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-build</artifactId>
<name>PMD Build Plugin</name>
<version>0.10-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<description>
<![CDATA[
This small subproject regroup most of the stuff needed to build pmd.
As some java code has been produced to reduce the use of scripts when
generating the website, the build also requires a small jar, which is
generated by this pom.
IMPORTANT NOTE: the pmd-build.jar does not need to be recompile if you
modify any ant or xslt files. You can alter the files that are in the
xslt directory and directly uses the appropriate ant or java task.
pmd-build should be recompiled and package (and its version incrememented)
only if you modify the java code.
]]>
</description>
<url>http://pmd.sourceforge.net/</url>
<inceptionYear>2008</inceptionYear>
<licenses>
<license>
<name>BSD-style</name>
<url>http://pmd.sourceforge.net/license.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/pmd/pmd.git</connection>
<developerConnection>scm:git:ssh://git@github.com/pmd/pmd.git</developerConnection>
<url>https://github.com/pmd/pmd</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<id>rpelisse</id>
<name>Romain Pelisse</name>
<email>rpelisse@users.sourceforge.net</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>adangel</id>
<name>Andreas Dangel</name>
<email>adangel@users.sourceforge.net</email>
<roles>
<role>Developer</role>
</roles>
</developer>
</developers>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<tagNameFormat>@{project.artifactId}/@{project.version}</tagNameFormat>
<pushChanges>false</pushChanges>
<localCheckout>true</localCheckout>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.4</version>
</plugin>
</plugins>
</build>
<properties>
<mavenVersion>3.0.3</mavenVersion>
</properties>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>${mavenVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${mavenVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${mavenVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-testing</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.4</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<rulesets>
<ruleset>${basedir}/../pmd-core/src/main/resources/rulesets/internal/dogfood.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.13</version>
<configuration>
<configLocation>${basedir}/../pmd-core/etc/checkstyle-config.xml</configLocation>
<suppressionsFile>${basedir}/../pmd-core/etc/checkstyle-suppressions.xml</suppressionsFile>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

View File

@ -1,47 +0,0 @@
Release Howto for pmd-build:
============================
Prerequisites:
--------------
* You need to have a Jira account at Sonatype: https://issues.sonatype.org/
* You need to have upload permissions to the staging repository for PMD at sonatype: https://issues.sonatype.org/browse/OSSRH-2295
* For more infos: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
* You need a GPG key for signing the artifacts. Use "gpg --list-keys" to see your available keys. Note: Your key must be
available through various keyservers.
* You need to have your settings.xml filled:
-> configure the property gpg.keyname and any other property for the maven-gpg-plugin (e.g. via a profile)
-> configure the server section (you need to configure your sonatype jira account for server id "sonatype-nexus-staging").
* You'll need at least maven 3.0.4, see http://jira.codehaus.org/browse/MRELEASE-756
Step by step:
-------------
1. Checkout master branch:
git clone https://github.com/pmd/pmd.git
cd pmd/maven-plugin-pmd-build
2. Prepare the release (creates a new release tag).
This will be done for you: http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html
Maven will ask you about the release version, the tag name and the new version. You can simply hit enter,
to use the default values.
mvn release:clean
mvn release:prepare
3. Perform the release (builds from the tag and deploys the artifact).
mvn release:perform
4. Release it via Sonatype Nexus
* Login to https://oss.sonatype.org/
* Go to Staging Repositories page
* Select a staging repository
* Click the close button
* Now you can download the artifacts again and verify they are working.
* Once you are sure they are working, click "Release" and the artifacts are eventually available through maven central.
5. Push your local changes if everything is fine
git push origin master
git push origin tag pmd-build/<version>

View File

@ -1,207 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.ant;
import java.net.URL;
import net.sourceforge.pmd.build.PmdBuildException;
import net.sourceforge.pmd.build.PmdBuildTools;
import net.sourceforge.pmd.build.RuleSetToDocs;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
/**
* @author Romain PELISSE, belaran@gmail.com
*
*/
public class PmdBuildTask extends Task {
private String rulesDirectory;
private String target;
private String siteXml;
private String siteXmlTarget;
private URL[] runtimeClasspath;
public URL[] getRuntimeClasspath() {
return runtimeClasspath;
}
public void setRuntimeClasspath(URL[] runtimeClasspath) {
this.runtimeClasspath = runtimeClasspath;
}
public String getSiteXml() {
return siteXml;
}
public void setSiteXml(String siteXml) {
this.siteXml = siteXml;
}
public String getSiteXmlTarget() {
return siteXmlTarget;
}
public void setSiteXmlTarget(String siteXmlTarget) {
this.siteXmlTarget = siteXmlTarget;
}
private String rulesetToDocs;
private String mergeRuleset;
private String rulesIndex;
private String indexFilename;
private String mergedRulesetFilename;
/**
* @return the rulesDirectory
*/
public String getRulesDirectory() {
return rulesDirectory;
}
/**
* @param rulesDirectory
* the rulesDirectory to set
*/
public void setRulesDirectory(String rulesDirectory) {
this.rulesDirectory = rulesDirectory;
}
/**
* @return the targetDirectory
*/
public String getTarget() {
return target;
}
/**
* @param targetDirectory
* the targetDirectory to set
*/
public void setTarget(String targetDirectory) {
this.target = targetDirectory;
}
public void execute() throws BuildException {
PmdBuildTools tool = validate(new RuleSetToDocs());
tool.setTargetDirectory(this.target);
tool.setSiteXml(siteXml);
tool.setSiteXmlTarget(this.siteXmlTarget);
tool.setRulesDirectory(this.rulesDirectory);
tool.setRuntimeClasspath(runtimeClasspath);
try {
tool.convertRulesets();
tool.preSiteGeneration();
} catch (PmdBuildException e) {
throw new BuildException(e);
}
}
private PmdBuildTools validate(RuleSetToDocs tool) throws BuildException {
// Mandatory attributes
if (this.target == null || "".equals(target)) {
throw new BuildException("Attribute targetDirectory is not optional");
}
if (this.rulesDirectory == null || "".equals(this.rulesDirectory)) {
throw new BuildException("Attribute rulesDirectory is not optional");
}
if (this.siteXml == null || "".equals(siteXml)) {
throw new BuildException("Attribute siteXml is not optional");
}
if (this.runtimeClasspath == null || "".equals(runtimeClasspath)) {
throw new BuildException("Attribute pmdClasspath is not optional");
}
// Optional Attributes
if (this.mergedRulesetFilename != null && !"".equals(this.mergedRulesetFilename)) {
tool.setMergedRuleSetFilename(this.mergedRulesetFilename);
}
if (this.rulesIndex != null && !"".equals(this.rulesIndex)) {
tool.getXmlFileTemplater().setGenerateIndexXsl(this.rulesIndex);
}
if (this.rulesetToDocs != null && !"".equals(this.rulesetToDocs)) {
tool.getXmlFileTemplater().setRulesetToDocsXsl(this.rulesetToDocs);
}
if (this.mergeRuleset != null && !"".equals(this.mergeRuleset)) {
tool.getXmlFileTemplater().setMergeRulesetXsl(this.mergeRuleset);
}
return tool;
}
/**
* @return the rulesetToDocs
*/
public String getRulesetToDocs() {
return rulesetToDocs;
}
/**
* @param rulesetToDocs
* the rulesetToDocs to set
*/
public void setRulesetToDocs(String rulesetToDocs) {
this.rulesetToDocs = rulesetToDocs;
}
/**
* @return the mergeRuleset
*/
public String getMergeRuleset() {
return mergeRuleset;
}
/**
* @param mergeRuleset
* the mergeRuleset to set
*/
public void setMergeRuleset(String mergeRuleset) {
this.mergeRuleset = mergeRuleset;
}
/**
* @return the rulesIndex
*/
public String getRulesIndex() {
return rulesIndex;
}
/**
* @param rulesIndex
* the rulesIndex to set
*/
public void setRulesIndex(String rulesIndex) {
this.rulesIndex = rulesIndex;
}
/**
* @return the indexFilename
*/
public String getIndexFilename() {
return indexFilename;
}
/**
* @param indexFilename
* the indexFilename to set
*/
public void setIndexFilename(String indexFilename) {
this.indexFilename = indexFilename;
}
/**
* @return the mergedRulesetFilename
*/
public String getMergedRulesetFilename() {
return mergedRulesetFilename;
}
/**
* @param mergedRulesetFilename
* the mergedRulesetFilename to set
*/
public void setMergedRulesetFilename(String mergedRulesetFilename) {
this.mergedRulesetFilename = mergedRulesetFilename;
}
}

View File

@ -1,24 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build;
/**
* @author Romain PELISSE, belaran@gmail.com
*
*/
public class PmdBuildException extends Exception {
/**
* Default serial ID
*/
private static final long serialVersionUID = 1L;
public PmdBuildException(String message) {
super(message);
}
public PmdBuildException(Throwable e) {
super(e);
}
}

View File

@ -1,60 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build;
import java.net.URL;
public interface PmdBuildTools {
/**
* @return the rulesDirectory
*/
String getRulesDirectory();
/**
* @param rulesDirectory
* the rulesDirectory to set
*/
void setRulesDirectory(String rulesDirectory);
/**
*
* @throws PmdBuildException
*/
void convertRulesets() throws PmdBuildException;
void preSiteGeneration() throws PmdBuildException;
/**
* @return the targetDirectory
*/
String getTargetDirectory();
/**
* @param targetDirectory
* the targetDirectory to set
*/
void setTargetDirectory(String targetDirectory);
/**
*
* @param siteXml
*/
void setSiteXml(String siteXml);
/**
*
* @param siteXmlTaget
*/
void setSiteXmlTarget(String siteXmlTarget);
/**
* Configures the classpath to use to analyze the properties of rules.
*
* @param runtimeClasspath
* @see RuntimeRulePropertiesAnalyzer
*/
void setRuntimeClasspath(URL[] runtimeClasspath);
}

View File

@ -1,285 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build;
import static net.sourceforge.pmd.build.util.ConfigUtil.getString;
import static net.sourceforge.pmd.build.util.XmlUtil.createXmlBackbone;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.dom.DOMSource;
import net.sourceforge.pmd.build.filefilter.DirectoryFileFilter;
import net.sourceforge.pmd.build.filefilter.RulesetFilenameFilter;
import net.sourceforge.pmd.build.util.FileUtil;
import net.sourceforge.pmd.build.util.XmlUtil;
import net.sourceforge.pmd.build.xml.RulesetFileTemplater;
import org.apache.commons.io.FilenameUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* A small class to convert files from pmd rulesets fmt to xdoc fmt
*
* @author Romain PELISSE, belaran@gmail.com
*
*/
public class RuleSetToDocs implements PmdBuildTools {
private static final Logger LOGGER = Logger.getLogger(PmdBuildException.class.toString());
private String indexRuleSetFilename = getString("pmd.build.config.index.filename");
private String mergedRuleSetFilename = getString("pmd.build.config.mergedRuleset.filename");
private String rulesDirectory;
private String targetDirectory;
private String siteXml;
private String siteXmlTarget;
private URL[] runtimeClasspath;
private RuntimeRulePropertiesAnalyzer ruleAnalyzer;
public URL[] getRuntimeClasspath() {
return runtimeClasspath;
}
public void setRuntimeClasspath(URL[] runtimeClasspath) {
this.runtimeClasspath = runtimeClasspath;
}
public String getSiteXmlTarget() {
return siteXmlTarget;
}
public void setSiteXmlTarget(String siteXmlTarget) {
this.siteXmlTarget = siteXmlTarget;
}
private RulesetFileTemplater xmlFileTemplater;
public String getRulesDirectory() {
return rulesDirectory;
}
public void setRulesDirectory(String rulesDirectory) {
this.rulesDirectory = rulesDirectory;
}
public String getIndexRuleSetFilename() {
return indexRuleSetFilename;
}
public void setIndexRuleSetFilename(String indexRuleSetFilename) {
this.indexRuleSetFilename = indexRuleSetFilename;
}
public String getMergedRuleSetFilename() {
return mergedRuleSetFilename;
}
public void setMergedRuleSetFilename(String mergedRuleSetFilename) {
this.mergedRuleSetFilename = mergedRuleSetFilename;
}
public String getTargetDirectory() {
return targetDirectory;
}
public void setTargetDirectory(String targetDirectory) {
this.targetDirectory = targetDirectory;
}
public RulesetFileTemplater getXmlFileTemplater() {
return xmlFileTemplater;
}
public void setXmlFileTemplater(RulesetFileTemplater xmlFileTemplater) {
this.xmlFileTemplater = xmlFileTemplater;
}
public String getSiteXml() {
return siteXml;
}
public void setSiteXml(String siteXml) {
this.siteXml = siteXml;
}
/*
* <ol> <li>Initialize the xml factory,</li> <li>Check if target exist (or
* try to create it).</li> </ol>
*/
private void init() throws PmdBuildException {
FileUtil.createDirIfMissing(targetDirectory);
xmlFileTemplater = new RulesetFileTemplater(rulesDirectory);
ruleAnalyzer = new RuntimeRulePropertiesAnalyzer(runtimeClasspath);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Merge xsl:" + xmlFileTemplater.getMergeRulesetXsl());
}
}
public void convertRulesets() throws PmdBuildException {
init();
File rulesDir = new File(rulesDirectory);
if (rulesDir.exists() && rulesDir.isDirectory()) {
recursivelyProcessSubFolder(processAllXDocsFilesFromDir(rulesDir));
} else if (!rulesDir.exists()) {
throw new PmdBuildException("The rulesets directory specified '" + rulesDirectory + "' does not exist");
} else if (!rulesDir.isDirectory()) {
throw new PmdBuildException("The rulesets directory '" + rulesDirectory + "' provided is not a directory !");
}
}
private void recursivelyProcessSubFolder(File rulesDir) throws PmdBuildException {
for (File folder : FileUtil.filterFilesFrom(rulesDir, new DirectoryFileFilter())) {
recursivelyProcessSubFolder(processAllXDocsFilesFromDir(folder));
}
}
private File processAllXDocsFilesFromDir(File rulesDir) throws PmdBuildException {
for (File ruleset : FileUtil.filterFilesFrom(rulesDir, new RulesetFilenameFilter())) {
processXDocFile(ruleset);
}
return rulesDir;
}
private File buildTransformedRulesetDirectory(File ruleset) {
return new File(this.targetDirectory + File.separator + ruleset.getParentFile().getName() + File.separator
+ FilenameUtils.getBaseName(ruleset.getName()) + ".md");
}
private void processXDocFile(File ruleset) throws PmdBuildException {
final File targetFile = buildTransformedRulesetDirectory(ruleset);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Processing file " + ruleset + " into " + targetFile.getAbsolutePath());
}
FileUtil.ensureTargetDirectoryExist(targetFile);
convertRuleSetFile(ruleset, targetFile);
}
private void convertRuleSetFile(File ruleset, File target) throws PmdBuildException {
try {
DOMSource dom = XmlUtil.createDomSourceFrom(new FileInputStream(ruleset));
Document document = (Document) dom.getNode();
NodeList rules = document.getElementsByTagName("rule");
for (int i = 0; i < rules.getLength(); i++) {
Node rule = rules.item(i);
ruleAnalyzer.analyze(document, rule);
escapeTextContent(findChildren(rule, "example"));
List<Node> properties = findChildren(rule, "properties");
for (Node prop : properties) {
List<Node> property = findChildren(prop, "property");
for (Node n : property) {
if (((Element)n).getAttribute("name").equals("xpath")) {
escapeTextContent(findChildren(n, "value"));
}
}
}
}
xmlFileTemplater.transform(dom, target, xmlFileTemplater.getRulesetToDocsXsl());
} catch (FileNotFoundException e) {
throw new IllegalArgumentException(e);
}
}
private static List<Node> findChildren(Node parent, String childName) {
List<Node> result = new ArrayList<Node>();
NodeList children = parent.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
if (isElement(child, childName)) {
result.add(child);
}
}
return result;
}
private static boolean isElement(Node node, String name) {
return node.getNodeType() == Node.ELEMENT_NODE && name.equals(node.getNodeName());
}
private static void escapeTextContent(Collection<Node> nodes) {
for (Node node : nodes) {
escapeTextContent(node);
}
}
private static void escapeTextContent(Node node) {
String content = node.getTextContent();
content = content.replaceAll("&", "&amp;");
content = content.replaceAll("<", "&lt;");
node.setTextContent(content);
}
private void addRulesetsToSiteXml(DOMSource backbone) {
File menu = FileUtil.createTempFile("menu.xml");
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("menu file:" + menu.getAbsolutePath());
}
xmlFileTemplater.transform(backbone, menu, xmlFileTemplater.getCreateRulesetMenuXsl());
File site = FileUtil.createTempFile("site.xml");
Map<String, String> parameters = new HashMap<String, String>(1);
parameters.put("menufile", menu.getAbsoluteFile().toString());
File sitePre = new File(siteXml);
xmlFileTemplater.transform(sitePre, site, xmlFileTemplater.getAddToSiteDescriptorXsl(), parameters);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("new site describ:" + site.getAbsolutePath());
}
FileUtil.move(site, new File(getSiteXmlTarget()));
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("deleting file:" + site.getAbsolutePath());
}
FileUtil.deleteFile(site);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("deleting file:" + site.getAbsolutePath());
}
FileUtil.deleteFile(menu);
}
private DOMSource createMergedFile(File mergedFile) {
DOMSource backbone = createXmlBackbone(xmlFileTemplater);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine(XmlUtil.transformDOMToString(backbone));
}
xmlFileTemplater.transform(backbone, mergedFile, xmlFileTemplater.getMergeRulesetXsl());
// Fix, removing the xmlns field of each ruleset in the generated xml
// file.
FileUtil.replaceAllInFile(mergedFile, "xmlns=\"http://pmd.sourceforge.net/ruleset/2.0.0\"", "");
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Creating index file:" + this.indexRuleSetFilename + ", using merged file:" + mergedFile.toString());
}
return backbone;
}
public void preSiteGeneration() {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Merging all rules into " + this.mergedRuleSetFilename);
}
File mergedFile = new File(this.targetDirectory + File.separator + FileUtil.pathToParent + File.separator
+ mergedRuleSetFilename);
DOMSource backbone = createMergedFile(mergedFile);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Creating index file:" + this.indexRuleSetFilename + ", using merged file:" + mergedFile.toString());
}
// Create index from ruleset merge
xmlFileTemplater.transform(mergedFile, new File(this.targetDirectory + File.separator + indexRuleSetFilename),
xmlFileTemplater.getGenerateIndexXsl());
// Create menu file from merge
addRulesetsToSiteXml(backbone);
}
}

View File

@ -1,115 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class RuntimeRulePropertiesAnalyzer {
private static final String XPATH_RULE_CLASSNAME = "net.sourceforge.pmd.lang.rule.XPathRule";
private ClassLoader cl;
private Method nameMethod;
private Method descMethod;
private Method defaultValueMethod;
private Field propertiesField;
private Field propertiesValues;
public RuntimeRulePropertiesAnalyzer(URL[] runtimeClasspath) {
init(runtimeClasspath);
}
private void init(URL[] runtimeClasspath) {
try {
cl = new URLClassLoader(runtimeClasspath);
Class<?> propertySource = cl.loadClass("net.sourceforge.pmd.AbstractPropertySource");
Class<?> propertyDesc = cl.loadClass("net.sourceforge.pmd.PropertyDescriptor");
nameMethod = propertyDesc.getDeclaredMethod("name");
descMethod = propertyDesc.getDeclaredMethod("description");
defaultValueMethod = propertyDesc.getDeclaredMethod("defaultValue");
propertiesField = propertySource.getDeclaredField("propertyDescriptors");
propertiesValues = propertySource.getDeclaredField("propertyValuesByDescriptor");
propertiesField.setAccessible(true);
propertiesValues.setAccessible(true);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* Analyzes the class of the given rule definition to find the properties
* this rule supports. The properties are directly added to the rule node.
*
* @param document
* the document, used to create new property nodes
* @param rule
* the rule to analyze
*/
public void analyze(Document document, Node rule) {
Node classAttribute = rule.getAttributes().getNamedItem("class");
if (classAttribute == null) {
// some rule definitions, like <rule ref="..."/> have no class
// attribute
return;
}
String classAtt = classAttribute.getTextContent();
if (XPATH_RULE_CLASSNAME.equals(classAtt)) {
// xpath rules are ignored - they have their properties defined
// already in the rule definition xml
return;
}
try {
Class<?> clazz = cl.loadClass(classAtt);
Object ruleInstance = clazz.newInstance();
@SuppressWarnings("rawtypes")
List properties = (List) propertiesField.get(ruleInstance);
@SuppressWarnings("rawtypes")
Map values = (Map) propertiesValues.get(ruleInstance);
Element propsElem = null;
NodeList ruleChilds = rule.getChildNodes();
for (int j = 0; j < ruleChilds.getLength(); j++) {
Node item = ruleChilds.item(j);
if (item.getNodeType() == Node.ELEMENT_NODE && "properties".equals(item.getNodeName())) {
propsElem = (Element) item;
break;
}
}
if (propsElem == null) {
propsElem = document.createElement("properties");
rule.appendChild(propsElem);
}
for (Object o : properties) {
Object value = values.get(o);
if (value == null) {
value = defaultValueMethod.invoke(o);
}
Element propElem = document.createElement("property");
propElem.setAttribute("name", (String) nameMethod.invoke(o));
propElem.setAttribute("description", (String) descMethod.invoke(o));
if (value != null) {
String valueString = String.valueOf(value);
if (value.getClass().isArray()) {
valueString = Arrays.toString((Object[]) value);
}
propElem.setAttribute("value", valueString);
}
propsElem.appendChild(propElem);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

View File

@ -1,21 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build.filefilter;
import java.io.File;
import java.io.FilenameFilter;
/**
*
* @author Romain PELISSE, belaran@gmail.com
*
*/
public class DirectoryFileFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return dir.exists() && dir.isDirectory() ? true : false;
}
}

View File

@ -1,38 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build.filefilter;
import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;
/**
*
* @author Romain PELISSE, belaran@gmail.com
*
*/
public class RulesetFilenameFilter implements FilenameFilter {
// FUTURE: Make this somehow configurable ? Turn into an array passed by constructor ?
private static final Pattern EXCLUDE = Pattern.compile(
"(^[0-9][0-9].*\\.xml)" +
"|(^.*dogfood.*\\.xml)" +
"|(^all-.*\\.xml)" +
"|(^migrating_.*\\.xml)" +
"|(^pmdspecific.xml)"
);
public boolean accept(File file, String name) {
if (doesNotMatchExcludeNames(name)) {
return name.endsWith(".xml");
} else {
return false;
}
}
private boolean doesNotMatchExcludeNames(String name) {
return !EXCLUDE.matcher(name).matches();
}
}

View File

@ -1,25 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.build.util;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public final class ConfigUtil {
private static final String BUNDLE_NAME = "config";
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private ConfigUtil() {
}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}

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