Installation instructions: https://pmd.github.io/eclipse/
Eclipse Update Site:
- Releases: https://pmd.github.io/pmd-eclipse-plugin-p2-site/
- Snapshots: https://pmd.github.io/pmd-eclipse-plugin-p2-site/snapshot/
This is a minor release.
This is a minor release.
- Update to PMD 7.7.0
This is a minor release.
- Update to PMD 7.6.0
- Support for Eclipse 2024-09 added
- Support for Eclipse 2023-09 removed
- New Git default branch - "main":
We are joining the Git community and updating "master" to "main". Using the term "master" for the main development branch can be offensive to some people. Existing versions of Git have been always capable of working with any branch name and since 2.28.0 (July 2020) the default initial branch is configurable (init.defaultBranch
). Since October 2020, the default branch for new repositories on GitHub is "main". Finally, PMD will also use this new name for the main branch in all our own repositories.
- Only include the jars under target/lib that are on the classpath (#223) by @adangel
- Update PMD icon to use small variant of the logo (#222) by @adangel
- Support eclipse 2024-09 (#221) by @adangel
- Change branch master to main (#220) by @adangel
- Bump checkstyle from 10.14.0 to 10.18.1 (#217)
This is a minor release.
- Update to PMD 7.5.0
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.4.0 (#215)
This is a minor release.
- Update to PMD 7.4.0
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 (#199)
- Bump org.apache.maven.plugins:maven-site-plugin from 4.0.0-M13 to 4.0.0-M15 (#201)
- Bump org.apache.maven.plugins:maven-clean-plugin from 3.3.2 to 3.4.0 (#202)
- Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.1 to 3.1.2 (#203)
- Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.1 to 3.5.0 (#204)
- Bump org.apache.maven.plugins:maven-pmd-plugin from 3.22.0 to 3.23.0 (#206)
- Bump org.apache.maven.plugins:maven-dependency-plugin from 3.5.0 to 3.7.1 (#207)
This is a minor release.
- Updated to PMD 7.3.0
- Support for Eclipse 2024-06 added
- Support for Eclipse 2023-06 removed
This is a minor release.
- Updated to PMD 7.2.0
This is a minor release.
- Updated to PMD 7.1.0
- #191: Rule Configuration Pref Page - PropertyDescriptor cannot be cast to Comparable
- #192: Add japicmp
The following classes have been deprecated for removal. Either they were not intended to be public API at all or they were used to support the UI for rule configuration. With the switch to PMD 7.0.0, these editor factories are not used anymore.
net.sourceforge.pmd.eclipse.ui.preferences.editors.AbstractEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.AbstractMultiValueEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.AbstractNumericEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.AbstractRealNumberEditor
net.sourceforge.pmd.eclipse.ui.preferences.editors.BooleanEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.CharacterEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.DoubleEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.EnumerationEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.FilePicker
net.sourceforge.pmd.eclipse.ui.preferences.editors.IntegerEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MethodPicker
net.sourceforge.pmd.eclipse.ui.preferences.editors.MultiEnumerationEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MultiIntegerEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MultiStringEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.RegexEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.StringEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.SWTUtil
net.sourceforge.pmd.eclipse.ui.preferences.editors.TypeText
The following members have been deprecated for removal:
net.sourceforge.pmd.eclipse.ui.dialogs.NewPropertyDialog#NewPropertyDialog(Shell, Map<Class<?>, EditorFactory<?>>, PropertySource, ValueChangeListener)
net.sourceforge.pmd.eclipse.ui.dialogs.NewPropertyDialog#NewPropertyDialog(Shell, Map<Class<?>, EditorFactory<?>>, Rule, PropertyDescriptor<?>, ValueChangeListener)
net.sourceforge.pmd.eclipse.ui.dialogs.NewPropertyDialog#withOnly(Map<Class<?>, EditorFactory<?>>, Class<?>[])
net.sourceforge.pmd.eclipse.ui.preferences.panelmanagers.AbstractRulePanelManager.show(TypeText, Class<?>)
net.sourceforge.pmd.eclipse.ui.preferences.panelmanagers.FormArranger#FormArranger(Composite, Map<Class<?>, EditorFactory<?>>, ValueChangeListener, SizeChangeListener)
net.sourceforge.pmd.eclipse.ui.preferences.panelmanagers.PerRulePropertyPanelManager#EDITOR_FACTORIES_BY_PROPERTY_TYPE
See the javadoc for more info and any possible alternatives if available.
This is a major release.
- Updated to PMD 7.0.0
- Support for Eclipse 2024-03 added
- Support for Eclipse 2023-12 added
- Support for Eclipse 2023-03 removed
- Support for Eclipse 2022-12 removed
- #185: Bump ch.qos.logback:logback-classic from 1.2.3 to 1.2.13
- #186: Support eclipse 2023-12
- #187: Bump tycho from 3.0.4 to 4.0.4
- #190: Support eclipse 2024-03
Due to the updated PMD version, there are a couple of incompatible changes, like changed packages. For the details, see the release notes of PMD.
The following members have been removed, even though they have not been deprecated before:
- net.sourceforge.pmd.eclipse.ui.preferences.panelmanagers.Configuratio#EXCLUDED_RULE_PROPERTIES
The following deprecated members have been removed:
- net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesImpl#getProjectRuleSets()
- net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesImpl#setProjectRuleSets(RuleSets)
- net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties#getProjectRuleSets()
- net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties#setProjectRuleSets(RuleSets)
- net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPageBean#getProjectRuleSets()
- net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPageBean#setProjectRuleSets(RuleSets)
- net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor#getRuleSets()
- net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor#setRuleSets(RuleSets)
- net.sourceforge.pmd.eclipse.ui.properties.UpdateProjectPropertiesCmd#setProjectRuleSets(RuleSets)
- net.sourceforge.pmd.eclipse.plugin.PMDPlugin#ROOT_LOG_ID
- net.sourceforge.pmd.eclipse.plugin.PMDPlugin#setJavaClassLoader(PMDConfiguration, IProject)
- net.sourceforge.pmd.eclipse.plugin.PMDPlugin#getPluginFolder()
- net.sourceforge.pmd.eclipse.plugin.PMDPlugin#getOpenFiles()
- net.sourceforge.pmd.eclipse.plugin.PMDPlugin#getPriorityValues()
- net.sourceforge.pmd.eclipse.plugin.UISettings#createRuleMarkerIcons(Display)
- net.sourceforge.pmd.eclipse.plugin.UISettings#markerFilenameFor(RulePriority)
- net.sourceforge.pmd.eclipse.plugin.UISettings#relativeMarkerFilenameFor(RulePriority)
- net.sourceforge.pmd.eclipse.plugin.UISettings#reloadPriorities()
- net.sourceforge.pmd.eclipse.plugin.UISettings#markerImgDescriptorsByPriority()
- net.sourceforge.pmd.eclipse.plugin.UISettings#markerDescriptorFor(RulePriority)
- net.sourceforge.pmd.eclipse.plugin.UISettings#descriptionFor(RulePriority)
- net.sourceforge.pmd.eclipse.plugin.UISettings#descriptorFor(RulePriority)
- net.sourceforge.pmd.eclipse.plugin.UISettings#priorityFor(int)
- net.sourceforge.pmd.eclipse.plugin.UISettings#getPriorityLabels()
- net.sourceforge.pmd.eclipse.runtime.cmd.AbstractDefaultCommand#isJavaFile(IFile)
- net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor#isUseTaskMarker()
- net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor#setUseTaskMarker(boolean)
- net.sourceforge.pmd.eclipse.runtime.cmd.ReviewCodeCmd#setTaskMarker(boolean)
- net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences#MAX_VIOLATIONS_PFPR_DEFAULT
- net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences#getMaxViolationsPerFilePerRule()
- net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences#setMaxViolationsPerFilePerRule(int)
- net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesImpl#getResolvedRuleSetFile()
- net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties#getResolvedRuleSetFile()
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#addExcludePatterns(RuleSet, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#addExcludePatterns(RuleSet, Collection, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#setExcludePatterns(RuleSet, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#addIncludePatterns(RuleSet, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#addIncludePatterns(RuleSet, Collection, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#setIncludePatterns(RuleSet, Collection)
- net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil#addRuleSetByReference(RuleSet, RuleSet, boolean)
- net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor#getImageDescriptor()
- net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor#getImage(Display)
- net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor#getImage(Display, int)
- net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor#refreshImages()
- net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptorCache#dumpTo(PrintStream)
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#PriorityFilter()
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#addPriorityToList(Integer)
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#removePriorityFromList(Integer)
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#setPriorityFilterListFromString(String, String)
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#getPriorityFilterListAsString(String)
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#getPriorityFilterList()
- net.sourceforge.pmd.eclipse.ui.views.PriorityFilter#setPriorityFilterList(List)
- net.sourceforge.pmd.eclipse.ui.views.ViolationOverview#getPriorityFilterList()
- net.sourceforge.pmd.eclipse.ui.RuleLabelDecorator#reloadDecorators()
- net.sourceforge.pmd.eclipse.ui.ShapePainter#disposeAll()
The following deprecated classes have been removed:
- name.herlin.command.AbstractProcessableCommand
- name.herlin.command.Command
- name.herlin.command.CommandException
- name.herlin.command.CommandProcessor
- name.herlin.command.CommandProcessorStrategy
- name.herlin.command.DefaultCommandProcessor
- name.herlin.command.DefaultCommandProcessorStrategy
- name.herlin.command.Timer
- name.herlin.command.UnregisteredCommandException
- name.herlin.command.UnsetInputPropertiesException
- net.sourceforge.pmd.eclipse.plugin.EclipseUtil
- net.sourceforge.pmd.eclipse.ui.views.AbstractViolationLabelProvider
- net.sourceforge.pmd.eclipse.ui.preferences.RulePropertiesContentProvider
- net.sourceforge.pmd.eclipse.ui.preferences.RulePropertyLabelProvider (not previously deprecated, but unused)
- net.sourceforge.pmd.eclipse.ui.preferences.RuleProperty
- net.sourceforge.pmd.eclipse.util.PriorityUtil
- net.sourceforge.pmd.eclipse.util.IOUtil
This is a minor release.
- Updated to PMD 7.0.0-rc4
- Support for Eclipse 2023-09 added
- Support for Eclipse 2023-06 added
- Support for Eclipse 2022-09 removed
- Support for Eclipse 2022-06 removed
- The deprecated field net.sourceforge.pmd.eclipse.runtime.PMDRuntimeConstants.MAX_VIOLATIONS_DESCRIPTOR has been removed.
- The following deprecated classes have been removed
- net.sourceforge.pmd.eclipse.ui.preferences.br.FilterManager
- net.sourceforge.pmd.eclipse.ui.preferences.editors.FileEditorFactory
- net.sourceforge.pmd.eclipse.ui.preferences.editors.FloatEditorFactory
- The following packages are not exported anymore, as they don't exist anymore:
- net.sourceforge.pmd.cpd.renderer
- net.sourceforge.pmd.properties.constraints
This is a release candidate for the next major release.
- Updated to PMD 7.0.0-rc3
- #171: Radio button for local rules in project properties dialog is missing
- #178: Message not interpolated in "Show details..." dialog
The following packages are no longer public API and are not exported anymore:
- name.herlin.command
- net.sourceforge.pmd.eclipse.core.impl
- net.sourceforge.pmd.eclipse.ui
- net.sourceforge.pmd.eclipse.ui.actions
- net.sourceforge.pmd.eclipse.ui.model
- net.sourceforge.pmd.eclipse.ui.preferences.br
- net.sourceforge.pmd.eclipse.ui.properties
- net.sourceforge.pmd.eclipse.ui.views.actions
The following classes have finally been removed. Most of them have been deprecated before:
- net.sourceforge.pmd.eclipse.ui.preferences.PMDPreferencePage
- net.sourceforge.pmd.eclipse.ui.preferences.RuleCellModifier
- net.sourceforge.pmd.eclipse.ui.preferences.RuleDialog
- net.sourceforge.pmd.eclipse.ui.preferences.RulePropertyCellModifier (was not deprecated)
- net.sourceforge.pmd.eclipse.ui.preferences.RuleSetExcludeIncludePatternCellModifier (was not deprecated)
- net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPage
- net.sourceforge.pmd.eclipse.ui.views.actions.ShowRuleAction (was not deprecated)
- net.sourceforge.pmd.eclipse.ui.views.rules.RuleEditorView
This is a release candidate for the next major release.
- Updated to PMD 7.0.0-rc2
The following PMD packages from pmd-core are exported and can be used by other plugins:
- net.sourceforge.pmd
- net.sourceforge.pmd.cpd
- net.sourceforge.pmd.cpd.renderer
- net.sourceforge.pmd.lang
- net.sourceforge.pmd.lang.ast
- net.sourceforge.pmd.lang.document
- net.sourceforge.pmd.lang.metrics
- net.sourceforge.pmd.lang.rule
- net.sourceforge.pmd.lang.rule.xpath
- net.sourceforge.pmd.properties
- net.sourceforge.pmd.properties.constraints
- net.sourceforge.pmd.renderers
- net.sourceforge.pmd.reporting
- net.sourceforge.pmd.util
This is a release candidate for the next major release.
-
Beginning with version 7 of this plugin, only the last four eclipse releases are supported. The plugin might still work with older versions, but it's only developed and tested against the newer versions.
-
The version number of the PMD Eclipse Plugin now is synchronized with the supported and used PMD version. For Bugfixes in the PMD Eclipse Plugin only, a new version is released with the same major, minor, and patch, but a new qualifier only.
-
The minimum required Java version is Java 8.
-
The PMD Designer can't be started from within the plugin anymore. Please install PMD Designer separately when needed.
-
Updated to PMD 7.0.0-rc1
- #122: Update PMD 7 Logo in eclipse pmd plugin
- #172: Only support the last 4 eclipse releases
- #174: Upgrade to PMD 7
This is a minor release.
- Updated to PMD 6.55.0
This is a minor release.
- Updated to PMD 6.54.0
This is a minor release.
- Updated to PMD 6.53.0
- #168: Missing constraints in runtime Eclipse workspace (e.g., in Eclipse Modeling Tool since 2022-12 R)
- #169: Remove unnecessary required bundles
This is a minor release.
- Updated to PMD 6.52.0
- #109: Duplicate entries in reports
This is a minor release.
- Java 17 is required for building now. The plugin still works with older eclipse versions with Java 8.
- Updated to PMD 6.51.0
- #165: Bump tycho from 2.7.4 to 3.0.0
This is a minor release.
- Updated to PMD 6.50.0
This is a minor release.
- Updated to PMD 6.49.0
- #164: Add more language modules
This is a minor release.
- Updated to PMD 6.48.0
- #163: Bump tycho from 2.6.0 to 2.7.4
This is a minor release.
- Updated to PMD 6.47.0
This is a minor release.
- Updated to PMD 6.46.0
- #162: Fix deprecations
This is a minor release.
- Updated to PMD 6.45.0
This is a minor release.
- Updated to PMD 6.44.0
This is a minor release.
- Updated to PMD 6.43.0
This is a minor release.
- Updated to PMD 6.42.0
This is a minor release.
- Updated to PMD 6.41.0
This is a minor release.
- Updated to PMD 6.40.0
This is a minor release.
- Updated to PMD 6.39.0
This is a minor release.
- Updated to PMD 6.38.0
- #159: Error executing command ReviewCode: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index (part 2)
This is a minor release.
- Updated to PMD 6.37.0
- #148: Eclipse nearly-consistently crashes on startup when workspace contains PMD enabled projects
- #150: Error executing command ReviewCode: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index
- #153: Not properly disposed SWT resource
net.sourceforge.pmd.eclipse.plugin.EclipseUtil
net.sourceforge.pmd.eclipse.plugin.PMDPlugin.getPluginFolder()
net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor.isUseTaskMarker()
net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor.setUseTaskMarker(boolean)
net.sourceforge.pmd.eclipse.ui.preferences.br.FilterManager
net.sourceforge.pmd.eclipse.util.IOUtil
net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor.refreshImages()
- All classes that couldn't be instantiated because they had a private constructor only
are now also
final
.
This is a minor release.
- Updated to PMD 6.36.0
- #133: Updates with outdated certificates from orbit
- #134: Incompatibility between Groovy Eclipse Plugin and PMD Plugin
This is a minor release.
- Updated to PMD 6.35.0
- #146: Refactor actions to use correct selection
This is a minor release.
- The Eclipse Update site is now hosted on GitHub Pages: https://pmd.github.io/pmd-eclipse-plugin-p2-site/ The old update site on Bintray is no longer updated.
- Updated to PMD 6.34.0
- #143: Support JAR Signing for the update site
- #144: Remove support and scripts for bintray
- #145: Bump tycho from 1.7.0 to 2.3.0
- The following methods in
net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil
are deprecated:setExcludePatterns(RuleSet ruleSet, Collection<String> excludePatterns)
setIncludePatterns(RuleSet ruleSet, Collection<String> includePatterns)
addExcludePatterns(RuleSet ruleSet, Collection<String> activeExclusionPatterns, Collection<String> buildPathExcludePatterns)
addIncludePatterns(RuleSet ruleSet, Collection<String> activeInclusionPatterns, Collection<String> buildPathIncludePatterns)
addExcludePatterns(RuleSet rs, Collection<String> excludePatterns)
addIncludePatterns(RuleSet rs, Collection<String> includePatterns)
- These methods are not supposed to be public API and will be removed eventually.
- The property
net.sourceforge.pmd.eclipse.runtime.PMDRuntimeConstants.MAX_VIOLATIONS_DESCRIPTOR
is deprecated and will be removed. - The preference "net.sourceforge.pmd.eclipse.plugin.max_violations_pfpr" is deprecated and will be removed.
It was never implemented. The following methods and fields are deprecated:
net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences.getMaxViolationsPerFilePerRule()
net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences.setMaxViolationsPerFilePerRule(int)
net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences.MAX_VIOLATIONS_PFPR_DEFAULT
net.sourceforge.pmd.eclipse.runtime.cmd.DetectCutAndPasteCmd.setRenderer(Renderer)
is deprecated.- Removed usages of deprecated class
net.sourceforge.pmd.RuleSets
. Therefore the following methods are deprecated now:net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor.getRuleSets()
net.sourceforge.pmd.eclipse.runtime.cmd.BaseVisitor.setRuleSets(RuleSets)
net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties.getProjectRuleSets()
net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties.setProjectRuleSets(RuleSets)
net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesImpl.getProjectRuleSets()
net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesImpl.setProjectRuleSets(RuleSets)
net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPageBean.getProjectRuleSets()
net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPageBean.setProjectRuleSets(RuleSets)
net.sourceforge.pmd.eclipse.ui.properties.UpdateProjectPropertiesCmd.setProjectRuleSets(RuleSets)
This is a minor release.
- The update site moved from Bintray to Github Pages. The new URL is from now on: https://pmd.github.io/pmd-eclipse-plugin-p2-site/
- Archives of the old versions can be found on sourceforge: https://sourceforge.net/projects/pmd/files/pmd-eclipse/zipped/
- Updated to PMD 6.33.0
- #140: Use gh pages for update site
This is a minor release.
- Updated to PMD 6.32.0
This is a minor release.
- Updated to PMD 6.31.0
This is a minor release.
- Updated to PMD 6.30.0
- #135: Fix JavaProjectClassLoader (auxclasspath support) for workspace relative libraries
This is a minor release.
- Updated to PMD 6.29.0
- #131: Conflict with Jaspersoft Studio plugin (log4j)
-
With 4.10.0 usage of log4j has been deprecated. In order to fix #131 these deprecated references have been removed now.
The following methods/fields in
net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences
have been removed:getLogLevel()
setLogLevel(Level)
LOG_LEVEL
- #132: Remove log4j - Rich DiCroce
This is a minor release.
- Updated to PMD 6.28.0
This is a minor release.
- Updated to PMD 6.27.0
This is a minor release.
- Updated to PMD 6.26.0
This is a minor release.
- Updated to PMD 6.25.0
- #123: Support external configuration changes
- #124: No repository found containing: osgi.bundle,org.slf4j.log4j,1.7.2.v20130115-1340
- #125: NoSuchMethodError SizeBasedTriggeringPolicy.setMaxFileSize(Ljava/lang/String;)V
- #128: Improve progress report of ReviewCodeCmd
This is a minor release.
- Updated to PMD 6.24.0
This is a minor release.
- Updated to PMD 6.23.0
This is a minor release.
- Updated to PMD 6.22.0
This is a bugfix release.
- #114: NPE in PriorityDescriptorCache
- #115: Missing dependencies when installing
- #116: SWTError: No more handles
This is a minor release.
- Updated to PMD 6.21.0
- #108: GenericPropertyDescriptor cannot be cast to NumericPropertyDescriptor
- The minimum eclipse version is now definitely Kepler (4.3) as it is declared in the market place. This is enforced via a target definition.
- Usage of Log4j is deprecated and is going to be removed. Logback via slf4j is replacing it.
Therefore the following methods/fields are deprecated for removal in
net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences
:getLogLevel()
setLogLevel(Level)
LOG_LEVEL
net.sourceforge.pmd.eclipse.plugin.PMDPlugin#ROOT_LOG_ID
- The following property editors are deprecated and not used anymore:
net.sourceforge.pmd.eclipse.ui.preferences.editors.FileEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.FloatEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MethodEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MultiMethodEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.MultiTypeEditorFactory
net.sourceforge.pmd.eclipse.ui.preferences.editors.TypeEditorFactory
This is a minor release.
- Updated to PMD 6.20.0
This is a minor release.
- Updated PMD to 6.19.0
This is a minor release.
- Updated PMD to 6.18.0
- #110: PMD markers should be removed on Project->Clean
- #111: Delete project markers on Project -> Clean - Sebastian Ratz
This is a minor release.
- Updated PMD to 6.17.0
This is a minor release.
-
Updated PMD to 6.16.0
-
PMD specific marker property page: This version adds a PMD specific property page to the marker properties which shows more information from the rule violation and rule itself. For more information, see Marker Property Page (wiki).
-
Marker Icons: Instead of the geometrical figures, the old icons for the PMD markers can be selected again:
This is a bugfix release.
- #103: IllegalStateException: Must be called in the UI thread
This is a minor release.
- Updated PMD to 6.15.0
- #100: Add missing french translations - Nicolas HENRY
This is a minor release.
- Updated PMD to 6.14.0
This is a bugfix release.
- Filtering by priority has been revamped. In both views "Violation Outline" and "Violation Overview" you can enable and disable the priorities. Changes in one view affects the other view as well as the markers displayed in the files. The selected priorities are stored in the preferences. PMD is not rerun when the priority filter is changed. The markers are only hidden instead. Changing the priority filter therefore affects the settings under General, Editors, Text Editors, Annotation for PMD Marker Annotations.
- #56: PMD not filtering
- #85: Gutter Markers not Configured Color
- #96: Wrong auxclasspath if project is stored outside of workspace
- In
net.sourceforge.pmd.eclipse.plugin.UISettings
the following methods are deprecated for removal:reloadPriorities()
markerFilenameFor(RulePriority)
relativeMarkerFilenameFor(RulePriority)
markerDescriptorFor(RulePriority)
markerImgDescriptorsByPriority()
createRuleMarkerIcons(Display)
descriptionFor(RulePriority)
descriptorFor(RulePriority)
priorityFor(int)
getPriorityLabels()
- In
net.sourceforge.pmd.eclipse.ui.RuleLabelDecorator
the methodreloadDecorators()
is deprecated for removal. - In
net.sourceforge.pmd.eclipse.ui.ShapePainter
the methoddisposeAll()
is deprecated for removal. - In
net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptor
the following methods are deprecated for removal:getImageDescriptor()
getImage(Display)
getImage(Display, int)
- In
net.sourceforge.pmd.eclipse.ui.priority.PriorityDescriptorCache
the methoddumpTo(PrintStream)
is deprecated for removal. - The whole class
net.sourceforge.pmd.eclipse.ui.views.AbstractViolationLabelProvider
is deprecated for removal. - In
net.sourceforge.pmd.eclipse.plugin.PMDPlugin
the methodgetOpenFiles()
is deprecated for removal. - The class
net.sourceforge.pmd.eclipse.ui.views.PriorityFilter
must not be instantiated directly in the future. Therefore the public constructor has been deprecated. Additionally the following methods are deprecated for removal:setPriorityFilterList(List<Integer>)
getPriorityFilterList()
addPriorityToList(Integer)
removePriorityFromList(Integer)
setPriorityFilterListFromString(String, String)
getPriorityFilterListAsString(String)
- In
net.sourceforge.pmd.eclipse.ui.views.ViolationOverview
the methodgetPriorityFilterList()
is deprecated for removal. - The whole class
net.sourceforge.pmd.eclipse.util.PriorityUtil
is deprecated for removal.
This is a minor release.
- Updated PMD to 6.13.0
This is a minor release.
- Updated PMD to 6.12.0
- The package
name.herlin
is deprecated and will be removed with the next major version of the plugin. - PMD markers are now problem markers again. This means, that rule violations appear in the Problem View. The project property "Handle high priority violations as Eclipse errors" now works again.
- The PMD markers are now also visible on the overview ruler. They can be customized or disabled via workspace preferences, General, Editors, Text Editors, Annotations.
- In PMD's general preferences, there is a new option "Determine applicable file types automatically". This new option is enabled by default. When enabled, only the files of the languages, for which rules are active, are considered. This is a fix for bug #88.
- #54: "violationsAsErrors" is completely ineffective
- #70: UnsupportedOperationException opening Rule Configuration
- #76: Global rule management is saved even if cancelled
- #78: Project properties cannot be loaded anymore
- #83: "Restore defaults" button in PMD preferences is always deactivated
- #86: Add Markers next to Scroll bar
- #88: PMD is executed for all file types regardless of active rules
- #89: Upgrade to PMD 6.12.0
- #1359: PMD violations in eclipse should be shown on editor by scrollbar
- #75: Prevent UnsupportedOperationException #70 - phoenix384
- Updated PMD to 6.10.0
- Eclipse SimRel 2018-09 and 2018-12 is supported.
To do this, the plugin doesn't expose log4j for other plugins anymore.
(the package
org.apache.log4j
is not exported anymore). In case you used this in a fragment, you should now use the eclipse platform logging facilities.
- #48: Upgrade to PMD 6.10.0
- #65: Support multiple rulesets
- #67: PMD's XML Schemas should be registered in XML Catalog
- #73: Support openjdk 11 as runtime
- #51: Allow multiple ruleset files - Phillip Krall
- #53: README: markdown, fix links - Lars Hvam
- #60: Update to PMD 6.7.0 - Jan
- #61: Support Eclipse SimRel 2018-09 - jftsunami
- #63: Minor changes - jftsunami
- #66: Multi ruleset files - - Phillip Krall
- This is only a bugfix release.
- #52: Eclipse Internal Error - Out of Memory
- #57: De-duplicate project ruleset when loading the project properties
- Updated PMD to 6.2.0
- At least Java 1.7 is required now.
- Two new options under Preferences: "Show PMD violations overview when checking code" and "Show PMD violations outline when checking code". If these options are checked, then theses PMD views are shown automatically, when PMD check is executed for a project. This behaves similar like "Show PMD perspective", but just doesn't switch the current perspective.
- PMD is now only executed automatically, if the option "Check code after saving" is enabled. This allows to simply disable automatic PMD checks temporarily. Executing PMD via the project's context menu "Check Code" is not affected and can still be used to manually execute PMD to update the markers.
- #20: category.xml maybe broken
- #29: Processing errors without cause
- #32: Upgrade PMD to 6.2.0
- #42: Marker colors not updated in all views after change
- #43: Update unit tests to use new ruleset categories
- #46: PMD Preferences are overridden and lost
- #25: [core] Typesafe properties - Clément Fournier
- #26: Updated french translations - Clément Fournier
- #37: Global Priority Filter for Violations Overview/Outline - Phillip Krall
- #39: Show PMD violations overview/outline views when checking code - Phillip Krall
- #40: Only execute PMD when check on save is enabled - Phillip Krall
- #41: Update all views after marker color changed - Phillip Krall
- #44: Fix saving preferences for violation overview/outline - Phillip Krall
- Updated PMD to 5.8.0
- Updated PMD to 5.6.1
- Updated PMD to 5.5.5
- Updated PMD to 5.5.3
- Fix classpath errors due to multiple version on asm being on the classpath. See also bug #1492.
- Updated PMD to 5.5.0
- Fixed Violation Overview + Outline don't work for Non-Java Rule violations (issue #13, pull request #14)
- squid:S1854 - Dead stores should be removed (pull request #17)
- squid:S1213 - The members of an interface declaration or class should appear in a pre-defined order (pull request #18)
- Fixed Executing Rule.start() (bug #974)
- Fixed Cannot create reports for non-Java projects (bug #1473)
- Fixed Check Code doesn't work from project root in non-java projects (bug #1474)
- Fixed Not Able to enable PMD for Apex in Eclipse (bug #1483)
- Updated PMD to 5.3.6
- Fixed PMD-Plugin does not work if run with IBM JDK 1.7.0 (bug #1419)
- Fixed PMD Eclipse is not executed if "Full build" is not enabled (bug #1435)
- Fixed PMD is changing encoding of source code (bug #1386)
API Changes:
- The package
net.sourceforge.pmd.eclipse.core.rulesets
including sub-packages has been removed from the plugin. It won't export these package anymore. The purpose of this package was probably to provide a way of serializing and deserializing rulesets. As only the writer has been implemented and the reader was missing, it's not useful. If you need to read/write rulesets, use the core PMD functionality provided bynet.sourceforge.pmd.RuleSetWriter
. In order to read it back, usenet.sourceforge.pmd.RuleSetFactory
.
- Updated PMD to 5.3.2
- Fixed Unable to check more than one class without FullBuildEnabled (#1352)
- Fixed Manually checking code with PMD only works if PMD is activated for the project (bug #1351)
- Fixed Check code after saving runs PMD unnecessarily (bug #1350)
- Updated PMD to 5.3.0
- Updated PMD to 5.2.3 (pull request #4)
- Some performance improvements when using a BUNCH of projects with pmd settings (pull request #3)
- Fixed global rule management persistence broken (bug #1248)
- More PMD plugin performance updates (pull request #5)
- Updated PMD to 5.2.1
- Updated PMD to 5.1.3
- Fix packaging (pull request #1, bug #1129)
- Fixed Code review in Luna always throws "An internal error occurred during: "ReviewCode"." (bug #1210)
- Fixed NPE when selecting a Working Set in Eclipse (bug #1152)
- Fixed Eclipse plugin don't apply global rule configuration after restart (bug #1184)
- Fixed "Use type resolution" does not work (bug #1145)
- Fixed NullPointerException when selecting/unselecting items in the Projects Properties view (bug #1242)
- Fixed sizing of first column in Rule Configuration (bug #1237)
- Fixed Violations outline should remember column widths (bug #1240)
- Fixed Rule Configuration window does not use extra horizontal space (bug #1238)
- Updated PMD to 5.1.1
- Support workspace-relative path in ruleSetFile property (pull request #36, feature request #1133)
- Update Updatesite for Kepler and PMD 5.1.0 (feature request #1179)
- "Generate Abstract Syntax Tree" always run in JDK 1.4 mode (bug #1174)
- Fixed Plugin does not execute custom xpath rules (bug #1132)
- Fixed After changing exclude filters violations are not cleared (bug #1148)
- Updated PMD to 5.0.5
- Fixed Build path exclusions not honored (bug #988)
- Fixed right click to add reviewed comment missing (bug #1052)
- Fixed PMD Eclipse: How to ... documentation missing (bug #1061)
- Fixed Properties page: "Rule-Selection" should be disabled if project-local config is selected (bug #1070)
- Fixed Violations are reported multiple times (bug #1071)
- Fixed Exclude pattern does not work (bug #1079)
- Fixed SWTError: No more handles on Violation Outline View (bug #1096)
- Fixed Selecting non-duplicates during import doesn't work. (bug #1110)
- Fixed Eclipse log file will not be filled (bug #1112)
- Fixed PMD Eclipse plugin doesn't analyze project if it has non-existing source folders (bug #1116)
- Fixed An internal error occurred during: "RenderReport" (bug #1117)
- The official update site is now: https://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/
- Updated PMD to 5.0.4
- Fixed False Positive: LocalVariableCouldBeFinal (bug #1075)
Numerous changes & bugfixes Latest 5.0.1 snapshot of PMD itself Compatibility with Eclipse Juno
- New integrated AST View and XPath test area
- New rule creation wizard
- New report preferences panel
- New file filter panel for exclusion/inclusion entries
- New automatic "Check code on file save" function (off by default)
- User-definable rule violation markers
- Highest priority markers also decorate folders & projects (selectable)
- Colour syntax highlighting in code viewers/editors
- Expanded rule import dialog to show incoming rules and any duplicates
- Export rule function now only exports selected rules
- Overhauled rule preferences screen
- allows users to group/edit rules by multiple criteria
- new ability to enable/disable rules without removing them from rulesets
- larger editors for the various fields
- support for non-Java languages
- group editing of rule exclusion filters
- highlighting of non-default property values
- colour-tagged expressions in shown in rule table
- new property editors are fully type-aware
- misconfigured rules are highlighted
- Huge code cleanup
- Several usability fixes for the Dataflow view
- Updated to use latest SWT widgets wherever possible
- New option to control the launch of a full build per project - Thanks to Joe Freeman
- Check code from working set selections - Thanks to Dominik
- PMD updated to v4.2.4
- plugin reorganization
- code cleanup
- all rule examples displayed in Rule Configuration panel
- Full file path now set on RuleContext.setSouceCodeFile(file) instead of workspace relative path
Workspace level Rule editor enhanced to show nearly all Rule details, lots of little things. New exclude/include patterns from PMD 4.2 are supported. Support for storing RuleSets using Rule References (new PMD 4.2) is now default behavior. Projects can now specify a custom ruleset file explicitly, default remains .ruleset Type Resolution using Project Build Path settings is now possible. To use this feature, the Eclipse JVM must be able to read the version of .class files produced by the Projects.
PMD to 4.2.1
Bug #1811828 RuntimeException in RuleSetFactory, default RuleSet used on error Bug #1903578 Handler error in Eclipse log
See details for complete list.
Runtime
- Fix 1811828 RuntimeException in RuleSetFactory, default ruleset is used on error
- Fix 1903578 Handler error in Eclipse log
- Fix 1909929 clean violation review is not selective enough
- PMD updated to v4.2.1
- Use new standard PMD RuleSet serialization mechanism
- Use new PMD support for RuleReferences in RuleSets, instead of using Rule copies
- Use Java Project Build Path when invoking PMD to allow Type Resolution to work better
- Error type PMD Violations now show in Problems View for manual PMD invocations
- Workspace PMD Preferences allows enabling/disabling use of Java Project Build Path
- Workspace PMD Preferences removed DFA option, use DataflowAnomalyAnalysis rule instead
- Workspace Rules Configuration Rule table now shows RuleSet name
- Workspace Rules Configuration Rule table now shows Since attribute
- Workspace Rules Configuration now has Add Rule... button, defaulting to adding of an XPath Rule
- Workspace Rules Configuration Import Rule... dialog nows supports importing Rules by Reference (default) or by Copy
- Workspace Rules Configuration supports editing/adding of Exclude/Include patterns
- Workspace Rules Configuration supports launching of the PMD Rule Designer GUI
- Workspace Rules Configuration Rule editing dialog greatly enhanced to support presentation/editing of nearly all Rule details
- Workspace Rules Configuration Rule editing dialog shows when a Rule is a RuleReference
- Workspace Rules Configuration Rule editing dialog allows opening External Info URL in Browser
- Workspace Rules Configuration Rule editing dialog shows blue background when a Rule detail is overridden (e.g. what exactly have you customized)
- Project PMD Preference Rule table now sorts just like the Workspace Preferences version
- Project PMD Preference Rule table now shows RuleSet name
- Project PMD Preference Rule table now shows Rule Since attribute
- Project PMD Preference supports specifying arbitrary RuleSet file, default remains .ruleset
PMD to 4.1 dependency jars updated
Bug #1661524 Working set functionality doesn't work Bug #1811828 RuntimeException in RuleSetFactory
See details for complete list.
- PMD updated to v4.1
- dependency jars updated
- Fix 1661524 Working set functionality doesn't work
- Fix 1811828 RuntimeException in RuleSetFactory
- Fix NPE on empty rulesets
- Fix UI preference refresh bug
- xml rulesets now use indentation: human readable and easier to modify
Include PMD 4.0rc1. The included version is the one for Java14.
See details for complete list.
Runtime
- Add PMD v4.0rc1 (java 1.4 retroweaver support)
- Fix 1671486 Rule set is not serialized/deserialized properly
- Fix 1703589 ConcurrentModificationException in RuleSet.apply
- Fix 1710977 Null Pointer Exception on click of Add Rule (remove the button)
- Fix 1737975 CPD view double-click selection&jump bug
- Remove the embedded PMD documentation and point to the PMD remote site.
Runtime
- Fix 1583788 StackOverflowError in rule edit window
- Fix 1641930 Creation of ruleset.xml file causes error in Eclipse
- Fix 1645449 Views broken in 3.2.0 with Eclipse 3.2.1 on Solaris
JSP FILES ARE NOT SUPPORTED IN THIS VERSION YET
These views include filters and the overview now propose 3 different layout of violations. Statistics are computed when a package is collapsed. A button is added to force statistics computations.
Projects targeted for JDK 6.0 are now supported.
Dialogs and views has been developped to improve CPD integration.
Runtime
- Upgrade to PMD v3.9
- Update and improve overview and outline views
- Refactor CPD views
- Fix major NullPointer and ClassCastException bugs
- Add support for JDK 6.0
JSP FILES ARE NOT SUPPORTED IN THIS VERSION YET
Runtime
- Upgrade to PMD v3.8
- Fix NPE when searching for quickfixes for rules from project rulesets
- Fix 1541795 (at least it should)
- Fix 1554639 (thanks to Sven Jacob)
- Fix the refreshproblem of the dataflowanomalytable and a bug with overloaded methods in the dataflowview (Thanks to Sven Jacob)
- Fix 1417291 CCE when adding report (eclipse)
- Fix 1470054 Violation Details dlg has OK button which does nothing
- Fix 1470080 NPE in PMDRecord.findResource
- Fix 1481300 plugin throws NPE after move prjs to new workspace
- Fix 1486390 Exception during execution
This version is a major enhancement from previous ones. While this is not visible, it includes a complete refactoring of the plugin architecture necessary to ease future evolutions.
The consequence is that any preferences customizations from older versions will be lost. Project properties should be kept.
The suggested update procedure is to:
- disable PMD from all your projects
- disable then uninstall PMD from your Eclipse
- install new version
JSP FILES ARE NOT SUPPORTED IN THIS VERSION YET
This version include major performances enhancements:
- process files that are only included in source directories
- by default, derived files are excluded (this is an option of the project properties)
- heavy statistics computation has been shutdown (#violations/loc & #violations/method)
- refactor the markers application to use uptodate Eclipe features
- limit the number of reported violations per file per rule the default is set to 5 and can be changed in the preferences.
Now the plugin overhead to PMD should be only few hundreds of milliseconds (depends of the #files to process and #violations generated of course).
The old violation view has been removed to the benefit of the new PMD Perspective which is more efficient.
To obtain the same kind of view, simply use the standard Problems view.
Running CPD now benefits of the working set selected for the project.
Now the logging properties can be set in the preferences dialog. You can choose the logging level (default to WARN) and the logging file name and location (default to the standard pmd-eclipse.log file in the Eclipse install directory).
By default, the review comment style is the standard PMD style (// NOPMD comment) and no more the former Eclipse style (// @PMD:REVIEW...).
This can be changed in the preferences dialog.
Note that the Eclipse style is considered deprecated and will be removed in a next version.
Runtime
- Reconfigure the rebuild command to better handle huge projects
- Add the include derived files option
- make CPD "working set aware"
- remove some dead code
- limit the number of reported violations per file and per rule (default to 5)
- Add the possibility to use the PMD violation review style
- Refactor the plugin architecture to better accept future evolutions
This version includes a patched version of PMD v3.6. The new VBHTML report has been included.
JSP FILES ARE NOT SUPPORTED IN THIS VERSION YET
Generating reports with violations on classes in the default package now works correctly.
Fix BUG#1467817 Change the label of the rebuild_project question.
Runtime
- Update to PMD v3.6
- Fix the default package issue when generating reports
- Fix BUG#1467817 Change the label of the rebuild_project question
This version includes the patched version 3.5 of the PMD engine.
Variuous bugs are fixed: #1357798, #1365407 and various internal bugs.
Internal refactoring is still occurring.
Runtime
- Fix BUG#1357798 Source file utf-8 charset problem
- Fix BUG#1365407 Problems with PMD in Eclipse/Issue 1
- Update to PMD v3.5
- Fix NullPointerException on PriorityFilter class
- Fix NullPointerException and InvocationTargetException on ASTWriterImpl class
- Fix BUG#1365407 Problems with PMD in Eclipse/Issue 3
- Upgrade development environment to Eclipse 3.1.2
- Apply a patch to PMD v3.5
- Fix documentation about fragment plugin-id
This version includes version 3.4 of the PMD engine with regexp support.
Runtime
- Update to PMD v3.4 with regexp support
This is a minor release that fix missing elements from previous release.
Runtime
- RFE#1334241-Add an extension point to declare custom rulesets
- BUG#1212311-Deselecting a rules should now work
- Fix the missing ShowDataflowView issue
Great thanks to Sebastian Raffel. Sebastian has developped a PMD perspective with new views. The legacy "Violations view" still exists. By default, the PMD perspective is shown when a manual check is performed. Otherwise, simply go to the menu Window->Open perspective->Other... and select PMD in the PMD folder.
This version includes version 3.3 of the PMD engine
Some internal bugs and some described in the user forum has been fixed.
Runtime
- RFE#1231112-Make the rule table columns sortable in preferences dialog (thanks to Brian R)
- BUG#1231108-Fix the resizing issue
- Upgrade to PMD 3.3
- Add a PMD perspective
- Add a Violations Overview view
- Add a Violation Outline view
- Add a Dataflow view
- Continue internal code refactoring
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.
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.
This new version now works both on Eclipse v3.0 and Eclipse v3.1
This version is packaged with PMD v3.2
Now the plugin works for projects that are targeted to Java 5.0
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.
The PMD core plugin now define the net.sourceforge.pmd.eclipse.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".
Runtime
- Migrate to PMD v3.2
- Migrate to Eclipse v3.1
- Add support for JDK 1.5
- Create a CPD report instead of displaying a window
- Fix Bug#1190624 (Completly refactor the CPD feature. see release notes)
- Fix other non documented bugs
Development
- Continuing the refactoring.
- Forgive "small" commands.
- Use Castor to serialize project properties inside the project itself and no more inside the workspace .metadata
- Small improvements in the Plugin class
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.
The way the window is created has been changed. This should fix the problem.
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.
Runtime
- Fix Bug#1144793
- Fix Bug#1190624 (try)
- Fix PMD violations
- Continue refactoring
Development
- Forgive the Xerces plungin and repackage the xercesImpl.jar inside the PMD Core plugin.
Include the new PMD engine v3.0.
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.
Runtime
- upgrade the core engine to PMD v3.0
- implement reports generation (RFE#1177802)
Runtime
- upgrade the core engine to PMD v2.2
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.
Runtime
- upgrade the core engine to PMD v2.1 (fix 1095049)
- integrate to rule attributes when exporting rulesets (fix 1090032 & 1087079)
Runtime
- implements the "NOPMD" feature
Development
- refining the refactoring of the property page
- implementing a Command framework
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.
Runtime
- update to PMD v2.0
- update the icons (thanks to Ebu)
- fix error in the fragment how to
Development
- begin the refactoring; apply MVC to GUIs; apply Command and CommandProcessor patterns for PMD and Eclipse resources operations.
- Before generalizing the refactoring, test on the property page.
Runtime
- fix DOMSerializer class not found. -> Package Xerces as an Eclipse feature because SUN JDK 1.4 packages an incomplete Xerces implementation
Runtime
- Upgrading to PMD v1.8
Runtime
- Upgrading to PMD v1.7
Runtime
- Fixing UTF-8 issues in some source files
- Upgrading to PMD v1.6
- Upgrading to Eclipse v3M8
Runtime
- Fixing malformed UTF-8 characters in generated xml files (thanks to Jacques Lebourgeois)
Runtime
- Fixing bug #852522 : PreferencesPage doesn't show up
- Adapting to Eclipse v3M5
- Fixing Java Model Exception handling
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.
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.eclipse.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.
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.
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.
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.
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.
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.
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,...
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.
Runtime
- Fixing bug #819518 : AST writes out method return types incorrectly
- Fixing bug #820241 : VariableDeclaration doesn't show variable modifiers
- Fixing bug #850242 : PMD working from time to time
- Fixing bug #849558 : Cannot use pmd-eclipse plugin with Eclipse 2.1.2
- Fixing bug #841110 : PMD-eclipse not working after rule import and restart
- Fixing bug #838054 : PMD cannot run inside Eclipse
- Fixing bug #832250 : plugin exception in 1.2
- Adding the lazy check feature : suggest to not rebuild the project when the properties has changed.
- Adding the working set feature
- Previewing quickfix feature
- Refactoring to remove Eclipse internal APIs usage
- Refactoring to use the Eclipse adaptable framework instead of downcasting (where possible)
- Refactoring to adapt to Eclipse v3
Runtime
- Fixing JDK 1.3 runtime problem (for WSAD users for example) (thanks to Eduard Naum)
- Adding "scratchpad" ruleset in the drop down list when importing rulesets
- Refactoring JDK 1.3 compatibility feature so that it uses the compiler compliance 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.
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.
The plugin may generates 2 kind of XML files : rulesets file and AST files. Encoding problems that were sometimes encountered are now fixed.
Runtime
- Refactoring some classes to avoid the warnings about accessing private members from inner types.
- Adding the review feature (RFE#785023 and RFE#787086)
- Adding a Java 1.3 compatibility property for projects
- Upgrading to PMD 1.3.0
- Fixing encoding in rulesets (bug #810858)
- Fixing encoding of AST (bug #819520)
Development
- Rebuild the build.xml file according to the "Create Ant Build File" feature
Runtime
- Fixing exception in violations view when display violations of a class in the default package
- Refactoring ruleset preferences. Moving the prefered ruleset from preference store to state location
Runtime
- Updating to PMD v1.2.1
- Fixing CoreException when refreshing violations view with Eclipse v3
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.
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.
(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.
Runtime
- Writing more docs (using PMD, using CPD, reporting bugs)
- Redesigning the way to configure the plugin (see doc)
- Adding a view that show PMD violations
- Grouping PMD menu items in a submenu to be less intrusive in the views context menu
- Updating to PMD v1.2
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.
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).
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.
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.
Runtime
- Fixing SWTException when PMD is run on a file with syntax error (thanks to Chris Grindstaff)
- Generalize above fix for all message dialog in the plugin
- Adding logging facility to help support (using commons-logging and Log4J)
- Removing error dialog when PMD is executed on a file with syntax error (the PMD exception is logged as a warning)
- Adding PMD actions on folder and package popup menus (request from Vladimir Bossica)
- Processing markers changes as batch operations so that performances are improved.
- Updating PMD engine to v1.1
- Fixing CPD usage to conform to new engine implementation
- Improving progress indicators accurracy
- Adding online help that points to official PMD help and a howto section
- When generating an AST :
- place image information as an attribute instead of the tag body
- add other attributes (lines and cols) to all tags even those without children
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.
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
PMD engine is not shipped with the source archive. Download it from source forge and install it in a lib subdirectory.
Runtime
- Adding PMD as a project incremental builder.
- Refactor some entries in the plugin.xml file.
- Adding a "Delete PMD marker" popup menu on project, java files and task view.
- Adding a "Generate AST" popup menu on java file.
- Enabling popups in resource view and package view
- Externalizing strings and messages.
- Adding support for i18n : english is the default locale and providing french as the first alternative locale.
- Using PMD v1.03
Development
- Adding a ant build file
- Adapting .project to be compatible with both Eclipse 2.02 and WSAD v5.