diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.classpath b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.classpath
index f2c02e7810..d4fda0e2e8 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.classpath
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.classpath
@@ -1,18 +1,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.settings/org.eclipse.jdt.ui.prefs b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 0000000000..7dec1b7e58
--- /dev/null
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,54 @@
+#Mon Mar 29 02:08:09 CDT 2010
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=false
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=true
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_hatchwater
+cleanup_settings_version=2
+eclipse.preferences.version=1
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/CHANGELOG.txt b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/CHANGELOG.txt
index a37e43fd06..d28988859f 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/CHANGELOG.txt
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/CHANGELOG.txt
@@ -5,6 +5,7 @@ v4.0.0 - xxx 2010?
. Allows users to group/edit rules by multiple criteria
. provides ability to enable/disable rules without removing them
. larger editors for the various fields
+. new rule creation wizard supports new non-Java languages
. group editing of filter exclusion rules
. Color-tagged expressions in shown in rule table
. new property editors are fully type-aware
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/META-INF/MANIFEST.MF b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/META-INF/MANIFEST.MF
index 43dfebccee..b9c5a36515 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/META-INF/MANIFEST.MF
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/META-INF/MANIFEST.MF
@@ -2,23 +2,21 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: net.sourceforge.pmd.eclipse.plugin;singleton:=true
-Bundle-Version: 5.0.0.v200810141040
+Bundle-Version: 5.0.0.v20100726
Bundle-Activator: net.sourceforge.pmd.eclipse.plugin.PMDPlugin
-Require-Bundle: org.eclipse.core.resources;bundle-version="3.5.0",
+Require-Bundle: org.apache.commons.logging;bundle-version="1.0.4",
+ org.eclipse.core.resources;bundle-version="3.5.0",
org.eclipse.core.runtime;bundle-version="3.5.0",
org.eclipse.jdt.core;bundle-version="3.5.0",
- org.eclipse.jface;bundle-version="3.5.0",
org.eclipse.jface.text;bundle-version="3.5.0",
org.eclipse.ui;bundle-version="3.5.0",
- org.eclipse.ui.editors;bundle-version="3.5.0",
org.eclipse.ui.ide;bundle-version="3.5.0",
- org.eclipse.help
+ org.eclipse.ui.editors;bundle-version="3.5.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: %plugin.provider
Bundle-ClassPath: lib/asm-3.2.jar,
lib/castor-1.1.2.1-xml.jar,
- lib/commons-logging-1.1.1.jar,
lib/jaxen-1.1.1.jar,
lib/junit.jar,
lib/log4j-1.2.15.jar,
@@ -27,12 +25,20 @@ Bundle-ClassPath: lib/asm-3.2.jar,
lib/pmd-5.0.jar,
lib/xercesImpl-2.6.2.jar,
lib/xmlParserAPIs-2.6.2.jar,
- pmd-plugin.jar
+ pmd-plugin.jar,
+ lib/groupingTree.jar
Bundle-Localization: plugin
Export-Package: net.sourceforge.pmd,
- rulesets,
+ net.sourceforge.pmd.eclipse.core,
net.sourceforge.pmd.eclipse.plugin,
net.sourceforge.pmd.eclipse.runtime,
net.sourceforge.pmd.eclipse.runtime.builder,
net.sourceforge.pmd.eclipse.runtime.properties,
- net.sourceforge.pmd.eclipse.runtime.writer
+ net.sourceforge.pmd.eclipse.runtime.writer,
+ net.sourceforge.pmd.eclipse.ui,
+ net.sourceforge.pmd.eclipse.ui.model,
+ net.sourceforge.pmd.eclipse.ui.nls,
+ net.sourceforge.pmd.eclipse.ui.preferences.br,
+ net.sourceforge.pmd.eclipse.ui.views.actions,
+ net.sourceforge.pmd.util,
+ rulesets
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_diamond_white.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_diamond_white.png
new file mode 100755
index 0000000000..944f752b49
Binary files /dev/null and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_diamond_white.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_dot_white.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_dot_white.png
new file mode 100755
index 0000000000..0648e8a976
Binary files /dev/null and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/btn_dot_white.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_r.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_r.png
new file mode 100755
index 0000000000..90a57f0f72
Binary files /dev/null and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_r.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png
index 03ae38698d..22c0f119af 100755
Binary files a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_filter.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_filter.png
new file mode 100755
index 0000000000..47ed142d7d
Binary files /dev/null and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_filter.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_spinningArrows.png b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_spinningArrows.png
new file mode 100755
index 0000000000..9b84fe43fd
Binary files /dev/null and b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/icon_spinningArrows.png differ
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties
index 9d37a290b1..1414e7475f 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties
@@ -65,6 +65,8 @@ preference.ruleset.column.example_count.tooltip = Number of examples
preference.ruleset.column.rule_type.tooltip = Rule type:\n X = XPath\n D = dataflow\n T = type resolving
preference.ruleset.column.minimum_version = Min ver
preference.ruleset.column.minimum_version.tooltip = Minimum applicable version of the target language
+preference.ruleset.column.maximum_version = Max ver
+preference.ruleset.column.maximum_version.tooltip = Maximum applicable version of the target language
preference.ruleset.column.filters.regex = Regex filter
preference.ruleset.column.filters.regex.tooltip = Regular expression filters
preference.ruleset.column.filters.xpath = XPath filter
@@ -73,6 +75,7 @@ preference.ruleset.column.since = Since
preference.ruleset.column.since.tooltip = Incorporation within PMD
preference.ruleset.column.priority = Priority
preference.ruleset.column.fixCount = Fixes
+preference.ruleset.column.modCount = Changes
preference.ruleset.column.priority.tooltip = Relative priority
preference.ruleset.column.description = Description
preference.ruleset.column.property = Property
@@ -106,6 +109,7 @@ preference.rulesetselection.button.browse = Browse...
preference.rulesetselection.button.reference = Import by Reference
preference.rulesetselection.button.copy = Import by Copy
+preference.ruleedit.tab.rule = Rule
preference.ruleedit.tab.properties = Properties
preference.ruleedit.tab.description = Description
preference.ruleedit.tab.filters = Filters
@@ -120,12 +124,16 @@ preference.ruleedit.label.min = Min
preference.ruleedit.label.max = Max
preference.ruleedit.label.default = Default
-preference.ruleedit.label.ruleset_name = RuleSet name :
+preference.ruleedit.label.ruleset_name = RuleSet:
preference.ruleedit.label.since = Since :
preference.ruleedit.label.name = Rule name :
-preference.ruleedit.label.implementation_class = Rule implementation class :
+preference.ruleedit.label.implemented_by = Implemented by:
+preference.ruleedit.label.implementation_class = Implementation class:
preference.ruleedit.label.message = Message :
-preference.ruleedit.label.priority = Priority :
+preference.ruleedit.label.language = Target language:
+preference.ruleedit.label.language.version.min = Min version:
+preference.ruleedit.label.language.version.max = Max version:
+preference.ruleedit.label.priority = Priority:
preference.ruleedit.label.description = Description :
preference.ruleedit.label.external_info_url = External Info URL :
preference.ruleedit.label.examples = Examples :
@@ -133,8 +141,8 @@ preference.ruleedit.label.xpath = XPath :
preference.ruleedit.label.xpath.version = XPath version :
preference.ruleedit.button.rule_reference = Rule Reference
preference.ruleedit.button.xpath_rule = XPath rule
-preference.ruleedit.button.uses_type_resolution = Uses Type Resolution
-preference.ruleedit.button.uses_dfa = Uses DFA
+preference.ruleedit.button.uses_type_resolution = Uses type resolution
+preference.ruleedit.button.uses_dfa = Uses data flow analysis
preference.ruleedit.button.open_external_info_url = Open in Browser
# CPD preference page
@@ -180,6 +188,7 @@ view.filter.priority.4 = Show priority 4 violations
view.filter.priority.5 = Show priority 5 violations
view.filter.project_prefix = Show Project
+view.action.disable.rule = Disable rule
view.action.show_rule = Show Details ...
view.action.review = Mark as reviewed
view.action.remove_violation = Remove violation(s)
@@ -247,6 +256,7 @@ monitor.review = PMD : Review in progress...
monitor.remove_reviews = PMD : Removing violations reviews...
monitor.calc_stats = Calculating statistics ...
monitor.calc_stats.package = Calculating package
+monitor.collect_markers = Collecting markers
# Error messages
message.error.title = PMD Error
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/plugin.xml b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/plugin.xml
index 557035e8a2..db789430ed 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/plugin.xml
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/plugin.xml
@@ -94,8 +94,10 @@
id="net.sourceforge.pmd.eclipse.ui.preferences.pmdPreferencePage">
-
+
@@ -344,7 +347,22 @@
id="net.sourceforge.pmd.eclipse.ui.pmdFileCheckProjectAction"
label="%action.checkpmd"
menubarPath="additions"/>
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/plugin/PMDPlugin.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/plugin/PMDPlugin.java
index 3c476e180a..770b251d99 100644
--- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/plugin/PMDPlugin.java
+++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/plugin/PMDPlugin.java
@@ -1,8 +1,11 @@
package net.sourceforge.pmd.eclipse.plugin;
import java.io.IOException;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
+import net.sourceforge.pmd.RulePriority;
import net.sourceforge.pmd.RuleSet;
import net.sourceforge.pmd.RuleSetFactory;
import net.sourceforge.pmd.RuleSetNotFoundException;
@@ -38,6 +41,7 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle;
@@ -62,6 +66,15 @@ public class PMDPlugin extends AbstractUIPlugin {
Integer.valueOf(5)
};
+ public static final Map