Credits

Committers

  • David Dixon-Peugh - much of the early work on the grammar, initial Emacs plugin
  • David Craine - JBuilder plugin
  • Philippe Herlin - Eclipse plugin, fixed bugs in RuleSetFactory
  • Tom Copeland - lead developer, JDeveloper plugin, Gel plugin, initial jEdit plugin, IDEAJ integration
  • Don Leckie - The PMD GUI
  • Jiger Patel - jEdit plugin
  • Gunnlaugur Thor Briem - NetBeans plugin, Maven build script fixes, bug report on JavaCC parser's use of java.lang.Error
  • Ole-Martin Mork - NetBeans plugin

Committers emeritus

  • Tom Burke - Eclipse plugin
  • Rich Kilmer - logo design
  • Nascif Abousalh Neto - Emacs plugin
  • Paul Kendall - various bugfixes and features
  • Alex Chaffee - various bugfixes and features
  • Siegfried Goeschl - original Maven plugin, various bugfixes and features

Significant contributors

  • Brian Ewins - complete rewrite of CPD based on the Burrows-Wheeler transform
  • Dan Sheppard - XPath engine integration concept and implementation

Contributors

  • Chad Loder - SuspiciousOctalEscapeRule, EmptyStatementNotInLoop, SuspiciousHashcodeMethodName, NonCaseLabelInSwitchStatement, DefaultLabelNotLastInSwitchStmt, NonStaticInitializer, ExplicitCallToFinalize, MethodWithSameNameAsEnclosingClassRuleTest, FinalizeDoesNotCallSuperFinalize, FinalizeOverloaded, FinalizeOnlyCallsSuperFinalize, UnconditionalIfStatement, AvoidDollarSigns, EmptyStaticInitializer, EmptyFinalizerMethod rule, DontImportSun rule, improvements to ASTBooleanLiteral
  • Maik Schreiber - AccessNode bug report, other bug reports
  • Lokesh Gupta - improvements to the AST viewer
  • Jesse Glick - improvements to VariableNamingConventionsRule, patch for UnusedModifierRule, bug fix for VariableNameDeclarations rule, an excellent discussion on the UnnecessaryConstructorRule
  • Nicolas Liochon - CloneShouldCallSuperCloneRule implementation
  • Philippe Couton - OverrideBothEqualsAndHashcodeRule bug report, UseSingletonRule improvements, JUnitStaticSuiteRule improvements
  • Brandon Franklin - many pmd-web ideas
  • Slava Pestov - Suggestions for jEdit plugin enhancements.
  • Andriy Rozeluk - Suggestions for improving UnnecessaryReturn, AvoidDuplicateLiterals RFEs and bug reports, various other RFEs and thoughtful discussions as well
  • Olivier Mengué - Diagnosed and patched XML report character encoding problems
  • Hariolf Häfele - PMD-JDeveloper plugin bug reports
  • Pieter Bloemendaal - AvoidReassigningParametersRule bug report
  • Vladimir Bossicard - suggested AbstractNamingRule, test package organization suggestions, VBHTMLRenderer, numerous feature requests and bug reports, several rule suggestions derived from JUnit-Addons , evangelism :-)
  • Ken Foskey - noticed bad link
  • Stephan Janssen - promoted PMD for JJGuidelines
  • Ron Sidi - bug reports
  • David Koontz - suggestions for tweaking PMD command line options
  • Jeff Epstein - TextPad integration and tests
  • Gabe Johnson - CloseConnectionRule
  • Roelof Vuurboom - posted report of QStudio analysis of PMD
  • Jeff Anderson - node finding utility code
  • Boris Gruschko - regression test suites, nifty AST/XPath viewer
  • Trevor Harmon - rewrote XSLT script
  • Vadim Nasardinov - xdocs cleanup, run.sh cleanup
  • Sreenivasa Viswanadha - grammar cleanup for Ctrl-Z problem
  • Sigiswald Madou - bug report
  • Dan Tullis - bug report
  • George Menhorn - CPD bug reports and suggestions
  • Paul Roebuck - Ant build improvement, several bug reports
  • Jon A. Maxwell - Bug report
  • Erik Lee - Bug report
  • Joerg K. Wegner - pmd-web suggestions
  • Chris Webster - fix (and test) for UnnecessaryConstructorRule, BooleanInstantiation rule
  • Colin Simmonds - detailed bug reports
  • Trond Andersen - AvoidCatchingThrowable, ExceptionSignatureDeclaration, ExceptionTypeChecking
  • Bernd Jansen - grammer modification
  • Jarle Naess - bug report
  • Jeff Anderson - VariableNamingConventionsRule, MethodNamingConventionsRule, ClassNamingConventionsRule
  • Frank van Puffelen - documentation suggestions
  • Conrad Roche - bug report
  • mcclain looney - patch for CPD GUI, bug reports
  • Ralf Hauser - Various documentation suggestions, cygwin-run.sh
  • Pablo Casado - Bug report for UseSingletonRule
  • Nicolai Czempin - Various rule suggestions, additional PMD backronyms
  • Frank Hardisty - BeanMembersShouldSerializeRule
  • Randall Schulz - bug report for LooseCouplingRule
  • Wim Bervoets - bug report for the PMD Ant task
  • Niels Peter Strandberg - various tweaks to the PMD Swing UI
  • Ian Shef - documentation updates, bug reports on the Gel IDE plugin
  • Astro Jetson Jr - a tweak for the ShortVariableNameRule
  • Paul King - a complete rewrite of the Gel plugin
  • Gael Marziou - "exclude" rule feature request, bug reports
  • Philippe T'Seyen - refactoring and cleanup of the CPD Ant task, an XML renderer (with unit tests!) for CPD
  • Michael Montuori - bug reports on the Gel IDE plugin
  • Michael Hosier - bug reports on the Gel IDE plugin
  • Matthew Harrah - script bug report
  • Richard Jenson - CPD on Win32 troubleshooting
  • Daniel Bruguier - CPD on Win32 troubleshooting
  • Mario Claerhout - CPD optimizations and suggestions
  • Sameer Nanda - CPD Ant task bug report
  • Nanne Baars - grammar suggestions, rule suggestions
  • Adam Nemeth - bug fixes for UnnecessaryConstructorRule
  • Mike Thome - rule suggestions
  • Andrew Glover - the CPDTask, ExcessivePublicCountRule, CouplingBetweenObjectsRule, ExcessiveImportsRule, documentation tweaks
  • Robert Leland - bug report
  • Carl Gilbert - AccessorClassGenerationRule, DoubleCheckedLockingRule, ConstructorCallsOverridableMethodRule, bug reports, feature requests, and documentation improvements
  • Dave Fuller - improved resource loading code (packaged in a nice diff, too!)
  • David Whitmore - parser bug report
  • David Campbell - detailed bugs reports, Ant task refactoring, documentation tweaks
  • Michael Sutherland - bug report in IfStmtMustUseBracesRule
  • Egon Willighagen - pmd-web suggestion
  • Didier Duquennoy - pmd-netbeans feedback
  • Adam Nemeth - bug report on missing final attribute for local variable declarations
  • Frederic Harper - bug report and subsequent troubleshooting
  • Mats Henricson - an XSLT script and several bug reports
  • Luke Francl - numerous high quality feature suggestions and bug reports
  • Martin Cooper - feature suggestions
  • Bruce Mayhew - feedback on the jEdit plugin
  • Juergen Ebert - feature suggestions and pmd-netbeans feedback
  • J.D. Fagan - feature suggestions
  • William McArthur - ForLoopShouldBeWhileLoop rule
  • Ales Bukovsky - pmd-netbeans feedback
  • Radim Kubacki - bug reports, pmd-netbeans feedback
  • Stefan Bodewig - bug report
  • Paul Kendall - enhanced EmptyCatchBlock rule
  • Sean Sullivan - rule suggestions
  • Dale Vissar - rule suggestions
  • Alina Copeland - pmd-web formulas, pmd-dcpd optimizations
  • Vincent Massol - bug reports, design suggestions, feature suggestions, Maven guidance
  • Peter Donald - design suggestions
  • Liam Holohan - bug reports
  • Ralph Schaer - bug reports and verification
  • Damian O'Neill - Ant task patches

Organizations

DARPA for funding the Ultra*Log effort which spawned PMD.
Ultra*Log for letting us build PMD to help the code get better.
Cougaar is an agent architecture Ultra*Log is based on. (Which needs quite a bit of PMD also.)
SourceForge for providing hosting services for PMD.
RefactorIT for letting their software be used free-of-charge on PMD code (OpenSource Community License )
QA-Systems for sending in some handy utilities for PMD and shipping PMD inside their QStudio product