Release notes for the PMD Eclipse Plugin ---------------------------------------- IMPORTANT : SINCE v2.0 THE INSTALLATION PROCEDURE HAS BEEN CHANGED. READ THE SETUP_README.TXT FILE IN THE DOWNLOADED PACKAGE FOR INSTRUCTIONS. v3.1.0 04/07/2005 ----------------- IT IS HIGHLY RECOMMENDED YOU DELETE THE ruleset.xml FILE IN YOUR .metadata/plugins/net.sourceforge.pmd.eclipse DIRECTORY BEFORE UPGRADING. Well, it should works with it. But if you have any problem, please try to delete it before requesting support. FIXED/UPDATED : CPD report -------------------------- Because the bug #1190624 cannot be fixed, the CPD integration has been refactored. Now CPD can be launched on one project at a time only. The results are produced in a report file inside the report folder. The SimpleRenderer is used to render the report. UPDATED: Works on Eclipse v3.1 ------------------------------ This new version now works both on Eclipse v3.0 and Eclipse v3.1 UPDATED: PMD v3.2 ----------------- This version is packaged with PMD v3.2 UPDATED: Support for Java 5.0 source files ------------------------------------------ Now the plugin works for projects that are targeted to Java 5.0 UPDATED: Project properties --------------------------- In consequence of upgrading to Eclipse v3.1, project properties management has been reviewed. Now project properties are stored in a .pmd file at the project root. If you do not explicitly use the .ruleset file, you can delete it. NEW: Rulesets extension point ----------------------------- The PMD core plugin now define the net.sourceforge.pmd.core.rulesets extension point. This extension point allows fragment developers to declare their customs rulesets so that they appears in the drop down list when you request to import rulesets. This extension point allows also to declare rulesets that will be automatically loaded when creating a brand new workspace. For implementation details, a sample is best. A sample fragment project is committed in the CVS. The module name is "pmd-eclipse-test-fragment". ---------------------------------------------------------------------------------------- v3.0RC2 (alias v3.0.1) - 07/05/2005 ----------------------------------- FIXED : Tested on Eclipse 3.1M6 ------------------------------- The problem for Eclipse v3.1 Mx version has been solved. Because of this, now the project ruleset is always stored as a file (.ruleset) inside the project itself. This file is created "lazyly": it will not be created unless necessary; so don't panic if you cannot see it. FIXED (maybe?) : CPD report window for Mac users ------------------------------------------------ The way the window is created has been changed. This should fix the problem. UPDATED: Xerces Implementation re-packaged inside the core plugin ----------------------------------------------------------------- When migrating for Eclipse v3 (and then Java 1.4), a special plugin for Xerces was created. This has been forgiven and the XercesImpl.jar is now packaged inside the PMD Core plugin. ---------------------------------------------------------------------------------------- v3.0RC1 (alias v3.0.0) - 21/04/2005 ----------------------------------- UPDATED : PMD Engine v3.0 ------------------------- Include the new PMD engine v3.0. NEW : Adding a report generation feature (RFE#1177802) ------------------------------------------------------ The plugin includes now the possibility to generate reports. To generate reports, select a project and choose PMD->Generate Reports in the context menu. 4 reports will be generated in a "reports" directory at the project root: a HTML, CVS, TEXT and XML report. These reports are the one generated by the renderers from the PMD Engine. These reports are based on the PMD markers. Therefore, in order to work, PMD must be activated for the project or a manual must be executed before. Otherwise reports will be empty. Future versions of the plugin will include report selection, automatic generation and filename and targer folder customization. ---------------------------------------------------------------------------------------- v2.2 (alias v2.2.0) - 23/01/2005 ----------------------------------- This relase is considered as stable (no more a release candidate). The only bug it corrects is the management of the new "symboltable" and "dfa" rule attributes. It also includes PMD 2.1 and basically manages "// NOPMD" comments. ---------------------------------------------------------------------------------------- v2.1RC1 (alias v2.1.0) - 22/11/2004 ----------------------------------- Nothing very special in this release, but the confirmation of the new way of downloading the plugin. PMD core engine has been upgraded to v2.0. This release is a candidate, because a refactoring of the plugin has begun. The project property page is used as a test for this refactoring. Do not hesitate to open bug if something goes wrong. IMPORTANT: Lots of things have changed in PMD. There are some rules that are now XPath rules and have no more an implementation class. Because ruleset is cached, upgrading may cause trouble. To correct this try first to delete the file ruleset.xml in the .metadata\.plugins\net.sourceforge.pmd.eclipse directory of your workspace. Also, some new rules causes exception in some circumstances. Just unselect them. We are already working on this. ---------------------------------------------------------------------------------------- v2.0RC1 (alias v2.0.0) - 01/12/2003 ----------------------------------- As the plugin has become more complex, the plugin is now published with "release candidates" technique. So, when a RC is published, only bugs are corrected before a final release is published. UPDATED : Changing the deployment structure of the plugin --------------------------------------------------------- The plugin has been refactored to follow the standard deployment (installation) procedures of Eclipse. PMD comes now into Eclipse as a "feature" and is composed of two plugins : one for encapsulating PMD (net.sourceforge.pmd.core) and one for the UI integration (net.sourceforge.pmd.eclipse). A simple unzip doesn't work anymore, but using the update manager of Eclipse is required. Please, read the instructions included in the setup_readme.txt file of the package you downloaded from Sourceforge. NEW : Adding the "lazy check" feature ------------------------------------- This feature comes to help "big" projects. Now, when PMD is enabled for a project, the plugin ask before checking the entire project. If the answer is no, the new options are only applied when files are saved or added into the project. NEW : Adding the "working set" feature -------------------------------------- This feature also comes for big projects. A working set can be configured by project to filter files that have to be checked by PMD. Open the project properties dialog to specify this working set. NEW : Using a project ruleset file ---------------------------------- Instead of using the rulset configured in Eclipse preferences, it's possible to configure projects to use a ruleset file from the project. This file must be named ".ruleset" and must be in the root directory of the project. When the option is enabled, if the ruleset file doesn't exist, it is created. NEW : Previewing the Quickfix feature ------------------------------------- The plugin comes with a preview of the future "quickfix" feature. This feature will enable to use the Quickfix feature of Eclipse to correct rules violations. This version provides a quickfix for the duplicate imports rule. The quickfix consists of deleting the line where the violation occurs. UPDATED : Improving Eclipse v3 support -------------------------------------- The plugin has been refactored so that it should now work for both Eclipse v2 and v3 under a JDK v1.3. But a Eclipse v2.10 minimum is still required. This version has been tested whith Eclipse v2.11 and Eclipse v3M4. FIXED : Importing rules and rulesets ------------------------------------ Various bug reports shared the same problem : XML parsing of ruleset files. This parsing has been refactored (included in the PMD core engine) so that these bugs should now be fixed. These bugs were about importing rulesets, modifying rules properties,... FIXED : Improving AST generation -------------------------------- The generation of the AST has been refactored so that it now uses introspection to produce the tree. So now, no attributes should missed. Also, the XML output has been reviewed so that the generated file should now be a valid XML file. ---------------------------------------------------------------------------------------- v1.2.0 - 27/10/2003 NEW : Adding a JDK 1.3 compatibility option ------------------------------------------- With the upgrade to PMD 1.3, the plug-in now provide an option to flag the project to be JDK1.3 compatible. If the flag is checked, the "assert" keyword will be processed by PMD like a identifier. If the flag is unchecked, the "assert" will be processed as a keyword. NEW : Adding a review feature ----------------------------- Some rules occured and nothing can be done to correct it (unused parameter in a framework abstract method or interface method, complexity warning, deep ifs,...) You cannot remove the rules from the configuration because other or future occurrences are still needed. But if the rule is still used, then the violations view will be polluted by the undesired violations. To address this problem, the plug-in now provide a review feature. When a violation occurs, if it cannot be corrected, then it can be marked as "reviewed". Reviews are comments placed above the targeted line of code that avoid the violation to be raised in future checks. As it is in the code, it is automatically shared with other developpers. To learn more about this feature, please read the online documentation in the howto chapter. FIX : Encoding of generated XML files ------------------------------------- The plugin may generates 2 kind of XML files : rulesets file and AST files. Encoding problems that were sometimes encountered are now fixed. ---------------------------------------------------------------------------------------- v1.1.0 - 30/07/2003 NEW : Redesigning the plugin configuration ------------------------------------------ Since the beginning, the plugin was configured by selecting globaly desired, already written rulesets. Before v1.0.0, only rulesets from PMD was allowed or also, custom rulesets packaged in a fragment plugin. Since then, rulesets can also be loaded from standard file system. Now, the plugin configuration is no more rulset based, but rule based. That is, you can configure globaly what rules are to be used and configure them (change the priority level, the description and the violation message). The rules can be imported from PMD rulesets or from any custom ruleset. It's even possible to create new rules, such as XPath rules. Finally, the configured rules can be enabled or disabled in the properties of each project. For more information, read the how to chapter about the plugin configuration. NEW : Adding a violation view ----------------------------- PMD violations are shown as problems (or tasks) in the tasks view. Some users do not like this method to list violations. Now, a special view has been designed to display only violations. This view works like the tasks view, but displays informations differently. Also, this view provides filters specific for PMD such as a sorter by priority level. The users who do not want to use the tasks view any more may filter PMD markers to remove them from the tasks view. For more information, read the how to chapter about using the plugin. UPDATED : Grouping menu items ----------------------------- (request and patch from Christian J�ckel) In order to be less intrusive in the context menu of the package and navigator views, PMD menu items are now grouped in a submenu. This submenu is displayed by selecting the unique entry "PMD" in the context menu of the desired view. ---------------------------------------------------------------------------------------- v1.0.0 - 19/06/2003 NEW : Adding a logging facility ------------------------------- The logging support is based on Log4J from Apache (see: http://jakarta.apache.org/log4j). The default is to log at the warn level to the file "pmd-eclipse.log" using a rolling file appender of 10 MB and one backup file. The file is located in the {user.dir} directory which should be your Eclipse home directory To change these options, simply edit the "log4j.xml" file located in the plugin. Please read the Log4J doc to learn how to update this file. NEW : PMD actions from folder and package popups ------------------------------------------------ Now, PMD actions (check code and remove markers) are available from the popup menus of a folder (resource navigator view) and package (package explorer view). NEW : On-line help ------------------ PMD documentation is now shipped with the plugin. Open the help contents and select 'PMD Plugin documentation'. The topic 'PMD Documentation' points to the PMD official documentation. The chapter 'How to...' contains pages about some usual tasks with the plugin. UPDATED : --------- Lastest PMD Engine (v1.1). Now, no more error message is displayed when PMD is executed against a file with syntax errors. The progress indicators are more accurate. Violations are batch processed to speed up manual PMD invocation. ---------------------------------------------------------------------------------------- v0.5.0 - 19/03/2003 NEW : Using PMD as a project incremental builder ------------------------------------------------ When PMD is used as an incremental builder, then violations are added as problem marker. Then, markers will be removed when violations are fixed. To enable PMD as a incremental, simply check "enable PMD" on your project PMD property page. UPDATED : --------- When PMD is used "one shot" from the popup menu, then violations are added as task. Then, markers should be removed manually via the popup menus, either from the project (all violations for this project will be removed), or from a file or group of files (all violations for these files will be removed) or from the task view (all violations for all projects will be removed). PMD markers (violations) can be filtered in the task view : either PMD task marker or PMD problem marker or both. PMD rule violations have a priority from 1 to 5. Markers have only 3 level of severity, so the mapping is as follow : PMD priority 1 -> severity error, priority high PMD priority 2 -> severity error, priority normal PMD priority 3 -> severity warning, priority high PMD priority 4 -> severity warning, priority normal PMD priority 5 -> severity information, priority normal MISC : ------ PMD engine is not shipped with the source archive. Download it from source forge and install it in a lib subdirectory.