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. 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.