Compare commits

..
826 Commits
Author SHA1 Message Date
Andreas Dangel e2b03e76d3 travis build: fix escaping of double quotes
closes #324

Cherry-picked 536280bb98
2017-04-14 11:53:54 +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 abe2e8561c Fixes #309: [java] Parse error on method reference 2017-03-27 21:07:28 +02: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 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 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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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
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
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 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 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 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 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 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 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 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
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 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 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
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 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 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 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 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 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 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 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 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 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 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 cc5ce5cdf9 Update changelog 2017-01-20 09:53:08 -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 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 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 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 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
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 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 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 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
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 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 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 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 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 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 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 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 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 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 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
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 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 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 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 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 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 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 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 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 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
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
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 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 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 5b6580448e #1508 - Only close the classloader if its ours 2016-07-27 19:43:31 +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
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 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 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
Jan van Nunen 63293f8b31 Javascript tokenizer now ignores comment tokens. 2016-06-06 09:31:04 +02:00
Andreas Dangel f87dcb16cc Fix site generation
cherry picked: 8b8bb6d504
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 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 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 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
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 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
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 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
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 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 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 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 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 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 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
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
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
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 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 9da51952ef.
2016-03-10 20:11:06 +01:00
Andreas Dangel 3de70426cf Revert "Update changelog, keep backwards compatible createRuleSets methods by overloading"
This reverts commit b753cc5ec5.
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 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 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 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 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
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 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 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 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 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 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 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 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
Andreas Dangel 260e777d71 Fix unit test 2016-01-20 22:47:15 +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 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 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 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 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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 7be078a2d8 Merge branch 'pull-request-25' into pmd/5.4.x 2015-10-26 21:00:53 +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
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 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 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 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 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
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 808943e366 #1428 False positive in UnusedPrivateField when local variable hides member variable 2015-10-10 18:54:31 +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 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 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 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
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 43c1aaa702 Add verification test for dogfood.xml ruleset and fix it
See also commit 0555396978
2015-10-05 09:17:25 +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
* 1a110587f0
* 51f17c6010
* 36bc2c2dee
* cbf598c92c
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 59fcd70c8d.
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: 429e1a91a1
cherry-picked: 59f5c86392
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 094c9c0ec9 [maven-release-plugin] prepare release pmd_releases/5.3.0 2015-04-01 20:06:38 +02:00
Andreas Dangel 4cb7c4166e Prepare next development version 2015-04-01 19:59:43 +02:00
Andreas Dangel 8fd4528feb [maven-release-plugin] prepare branch pmd/5.3.x 2015-04-01 19:57:15 +02:00
Andreas Dangel 5c2f6bc962 [maven-release-plugin] prepare for next development iteration 2015-04-01 19:57:15 +02:00
Andreas Dangel 53055517d1 Prepare pmd release 5.3.0 2015-04-01 19:56:05 +02:00
Andreas Dangel 330708a35b #1197 JUnit4TestShouldUseTestAnnotation for private method 2015-03-27 20:47:58 +01:00
Andreas Dangel ddb7c89505 #1307 False positive: SingularField and lambda-expression 2015-03-27 20:36:18 +01:00
Andreas Dangel 4ad83be724 #1326 PMD 5.3.0-SNAPSHOT doesn't compile under Windows 2015-03-27 19:15:36 +01:00
Andreas Dangel 63017dbf08 pmd-core: convert util/database to junit 4 tests, indentation fixes 2015-03-26 20:48:45 +01:00
Andreas Dangel 79b92b71f1 #1322 MethodReturnsInternalArray on private methods 2015-03-26 20:33:57 +01:00
Andreas Dangel e46bea857a #1323 False positive case of UseAssertTrueInsteadOfAssertEquals 2015-03-26 20:25:19 +01:00
Andreas Dangel 65c2493ec7 #1325 Inner class declared within a method fails to parse (ClassCastException) 2015-03-26 19:54:04 +01:00
Andreas Dangel 12cc353d38 #1324 MethodReturnsInternalArray false positive with clone() 2015-03-25 21:31:17 +01:00
Andreas Dangel e57007e1be dogfood, whitespaces 2015-03-25 20:16:55 +01:00
Andreas Dangel 61e8412afe dogfood, whitespaces 2015-03-24 22:48:01 +01:00
Andreas Dangel 056b2fbaea dogfood, whitespaces 2015-03-23 22:11:23 +01:00
Andreas Dangel 45a0227f17 Use released version 0.9 of pmd-build plugin 2015-03-23 20:32:59 +01:00
Andreas Dangel 231a416c87 [maven-release-plugin] prepare for next development iteration 2015-03-23 20:25:49 +01:00
704 changed files with 22578 additions and 10970 deletions

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
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
#
+43
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
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
set -ev
mvn verify -B -V
+46
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
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
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
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.
+15
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
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
)
Binary file not shown.
+19
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
+29
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>
+34
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>
+36 -14
View File
@@ -1,27 +1,49 @@
[![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.
Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in
Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript.
Source
------
Our latest source of PMD can be found on [GitHub]. Fork us!
The current status of this repo can be seen at [BuildHive].
## Source
Our latest source of PMD can be found on [GitHub]. Fork us!
### 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 !
### 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
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/
Executable
+155
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/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
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<!-- place this file in ${user.home}/.m2/toolchains.xml -->
<toolchain>
<type>jdk</type>
<provides>
<version>1.6</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.6</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.7</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.7</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.8</jdkHome>
</configuration>
</toolchain>
</toolchains>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
-191
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.9</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>pmd-build/0.9</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>
-47
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>
@@ -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;
}
}
@@ -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);
}
}
@@ -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);
}
@@ -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);
}
}
@@ -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);
}
}
}
@@ -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;
}
}
@@ -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();
}
}
@@ -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 + '!';
}
}
}
Loaded 30 of 704 files, more files were not shown because too many files have changed in this diff. Show more