Skip to content

Commit 47679a5

Browse files
committed
PMD Markers are now problem markers
Now they appear in the problem view and "violationsAsErrors" is working as expected. Refs #54
1 parent 2a913ff commit 47679a5

File tree

2 files changed

+30
-24
lines changed
  • net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd
  • net.sourceforge.pmd.eclipse.plugin

2 files changed

+30
-24
lines changed

net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/ReviewCmdTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,19 @@
3535
package net.sourceforge.pmd.eclipse.runtime.cmd;
3636

3737
import java.io.InputStream;
38+
import java.util.ArrayList;
39+
import java.util.Arrays;
40+
import java.util.List;
3841
import java.util.Map;
3942
import java.util.Set;
4043

4144
import org.eclipse.core.resources.IFile;
45+
import org.eclipse.core.resources.IMarker;
4246
import org.eclipse.core.resources.IProject;
4347
import org.eclipse.core.resources.IResource;
4448
import org.eclipse.core.resources.IncrementalProjectBuilder;
4549
import org.eclipse.core.runtime.CoreException;
50+
import org.eclipse.jdt.internal.core.search.IRestrictedAccessConstructorRequestor;
4651
import org.junit.After;
4752
import org.junit.Assert;
4853
import org.junit.Before;
@@ -52,6 +57,7 @@
5257
import net.sourceforge.pmd.RuleSet;
5358
import net.sourceforge.pmd.eclipse.EclipseUtils;
5459
import net.sourceforge.pmd.eclipse.plugin.PMDPlugin;
60+
import net.sourceforge.pmd.eclipse.runtime.PMDRuntimeConstants;
5561
import net.sourceforge.pmd.eclipse.runtime.properties.IProjectProperties;
5662
import net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil;
5763

@@ -124,6 +130,17 @@ public void testReviewCmdBasic() throws CommandException, CoreException {
124130
// We do not test PMD, only a non-empty report is enough
125131
Assert.assertNotNull(markers);
126132
Assert.assertTrue("Report size = " + markers.size(), markers.size() > 0);
133+
134+
// test the marker types - they should be problem markers...
135+
final IFile sourceFile = this.testProject.getFile("/src/Test.java");
136+
List<IMarker> imarkers = new ArrayList<>();
137+
for (String markerType : PMDRuntimeConstants.RULE_MARKER_TYPES) {
138+
imarkers.addAll(Arrays.asList(sourceFile.findMarkers(markerType, false, IResource.DEPTH_ONE)));
139+
}
140+
Assert.assertEquals(markers.get(sourceFile).size(), imarkers.size());
141+
for (IMarker marker : imarkers) {
142+
Assert.assertTrue(marker.isSubtypeOf(IMarker.PROBLEM));
143+
}
127144
}
128145

129146
/**

net.sourceforge.pmd.eclipse.plugin/plugin.xml

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,64 +12,53 @@
1212
</toc>
1313
</extension>
1414

15-
<!-- original marker
1615
<extension
1716
id="pmdMarker"
1817
name="%marker.pmd"
1918
point="org.eclipse.core.resources.markers">
20-
<super
21-
type="org.eclipse.core.resources.problemmarker">
22-
</super>
23-
<persistent
24-
value="true">
25-
</persistent>
26-
<attribute
27-
name="rulename">
28-
</attribute>
19+
<super type="org.eclipse.core.resources.textmarker"></super>
20+
<super type="org.eclipse.core.resources.problemmarker"></super>
21+
<persistent value="true"></persistent>
22+
<attribute name="rulename"></attribute>
2923
</extension>
30-
-->
3124

3225
<extension
3326
id="pmdMarker1"
3427
name="%marker.pmd"
3528
point="org.eclipse.core.resources.markers">
36-
<super type="org.eclipse.core.resources.textmarker"></super>
37-
<persistent value="true"> </persistent>
38-
<attribute name="rulename"> </attribute>
29+
<super type="net.sourceforge.pmd.eclipse.plugin.pmdMarker"></super>
30+
<persistent value="true"></persistent>
3931
</extension>
4032

4133
<extension
4234
id="pmdMarker2"
4335
name="%marker.pmd"
4436
point="org.eclipse.core.resources.markers">
45-
<super type="org.eclipse.core.resources.textmarker"></super>
46-
<persistent value="true"> </persistent>
47-
<attribute name="rulename"> </attribute>
37+
<super type="net.sourceforge.pmd.eclipse.plugin.pmdMarker"></super>
38+
<persistent value="true"></persistent>
4839
</extension>
4940

5041
<extension
5142
id="pmdMarker3"
5243
name="%marker.pmd"
5344
point="org.eclipse.core.resources.markers">
54-
<super type="org.eclipse.core.resources.textmarker"></super>
55-
<persistent value="true"> </persistent>
56-
<attribute name="rulename"> </attribute>
45+
<super type="net.sourceforge.pmd.eclipse.plugin.pmdMarker"></super>
46+
<persistent value="true"></persistent>
5747
</extension>
5848

5949
<extension
6050
id="pmdMarker4"
6151
name="%marker.pmd"
6252
point="org.eclipse.core.resources.markers">
63-
<super type="org.eclipse.core.resources.textmarker"></super>
64-
<persistent value="true"> </persistent>
65-
<attribute name="rulename"> </attribute>
53+
<super type="net.sourceforge.pmd.eclipse.plugin.pmdMarker"></super>
54+
<persistent value="true"></persistent>
6655
</extension>
6756

6857
<extension
6958
id="pmdMarker5"
7059
name="%marker.pmd"
7160
point="org.eclipse.core.resources.markers">
72-
<super type="org.eclipse.core.resources.textmarker"></super>
61+
<super type="net.sourceforge.pmd.eclipse.plugin.pmdMarker"></super>
7362
<persistent value="true"> </persistent>
7463
<attribute name="rulename"> </attribute>
7564
</extension>

0 commit comments

Comments
 (0)