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.

