Skip to content

Commit 04894a5

Browse files
authored
[MPMD-412] Simplify stub setup by not swallowing exceptions (#226)
* Simplify stub setup by not swallowing exceptions
1 parent b9605ec commit 04894a5

File tree

5 files changed

+63
-218
lines changed

5 files changed

+63
-218
lines changed

src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,7 @@ public void testIncludeXmlInReports() throws Exception {
384384
}
385385

386386
/**
387-
* Verify the correct working of the locationTemp method
388-
*
389-
* @throws Exception
387+
* Verify the correct working of the locationTemp method.
390388
*/
391389
public void testLocationTemp() throws Exception {
392390

@@ -403,9 +401,7 @@ public void testLocationTemp() throws Exception {
403401
}
404402

405403
/**
406-
* Verify that suppressMarker works
407-
*
408-
* @throws Exception
404+
* Verify that suppressMarker works.
409405
*/
410406
public void testSuppressMarkerConfiguration() throws Exception {
411407
File generatedReport =
@@ -425,11 +421,10 @@ public void testSuppressMarkerConfiguration() throws Exception {
425421
str.contains("suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
426422

427423
// check if there's a link to the JXR files
428-
str = readFile(generatedReport);
429-
430-
assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
424+
String report = readFile(generatedReport);
425+
assertTrue(report.contains("/xref/def/configuration/AppSample.html#L27"));
431426
// suppressed violation
432-
assertTrue(str.contains("Avoid unused private fields such as 'unusedVar2'."));
427+
assertTrue(report.contains("Avoid unused private fields such as 'unusedVar2'."));
433428
}
434429

435430
public void testSuppressMarkerConfigurationWithoutRendering() throws Exception {
@@ -450,11 +445,10 @@ public void testSuppressMarkerConfigurationWithoutRendering() throws Exception {
450445
str.contains("suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
451446

452447
// check if there's a link to the JXR files
453-
str = readFile(generatedReport);
454-
455-
assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
448+
String report = readFile(generatedReport);
449+
assertTrue(report.contains("/xref/def/configuration/AppSample.html#L27"));
456450
// suppressed violations are not rendered
457-
assertFalse(str.contains("Avoid unused private fields such as 'unusedVar2'."));
451+
assertFalse(report.contains("Avoid unused private fields such as 'unusedVar2'."));
458452
}
459453

460454
public void testJspConfiguration() throws Exception {

src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -19,88 +19,18 @@
1919
package org.apache.maven.plugins.pmd.stubs;
2020

2121
import java.io.File;
22-
import java.io.FileInputStream;
23-
import java.io.InputStream;
24-
import java.util.ArrayList;
25-
import java.util.List;
22+
import java.io.IOException;
2623

27-
import org.apache.maven.artifact.Artifact;
28-
import org.apache.maven.model.Build;
29-
import org.apache.maven.model.Model;
30-
import org.apache.maven.model.ReportPlugin;
31-
import org.apache.maven.model.Scm;
32-
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
24+
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
3325

3426
/**
3527
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
3628
* @version $Id$
3729
*/
3830
public class CustomConfigurationMavenProjectStub extends PmdProjectStub {
39-
private Build build;
4031

41-
private List<ReportPlugin> reportPlugins = new ArrayList<>();
42-
43-
public CustomConfigurationMavenProjectStub() {
44-
MavenXpp3Reader pomReader = new MavenXpp3Reader();
45-
Model model = null;
46-
47-
try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
48-
model = pomReader.read(is);
49-
setModel(model);
50-
} catch (Exception e) {
51-
}
52-
53-
setGroupId(model.getGroupId());
54-
setArtifactId(model.getArtifactId());
55-
setVersion(model.getVersion());
56-
setName(model.getName());
57-
setUrl(model.getUrl());
58-
setPackaging(model.getPackaging());
59-
60-
Scm scm = new Scm();
61-
scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
62-
setScm(scm);
63-
64-
Build build = new Build();
65-
build.setFinalName(model.getBuild().getFinalName());
66-
build.setDirectory(getBasedir() + "/target");
67-
build.setSourceDirectory(getBasedir().getAbsolutePath());
68-
setBuild(build);
69-
70-
setReportPlugins(model.getReporting().getPlugins());
71-
72-
String basedir = getBasedir().getAbsolutePath();
73-
List<String> compileSourceRoots = new ArrayList<>();
74-
compileSourceRoots.add(basedir + "/custom/configuration");
75-
setCompileSourceRoots(compileSourceRoots);
76-
77-
Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
78-
artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
79-
setArtifact(artifact);
80-
81-
setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
82-
}
83-
84-
/** {@inheritDoc} */
85-
@Override
86-
public void setBuild(Build build) {
87-
this.build = build;
88-
}
89-
90-
/** {@inheritDoc} */
91-
@Override
92-
public Build getBuild() {
93-
return build;
94-
}
95-
96-
public void setReportPlugins(List<ReportPlugin> plugins) {
97-
this.reportPlugins = plugins;
98-
}
99-
100-
/** {@inheritDoc} */
101-
@Override
102-
public List<ReportPlugin> getReportPlugins() {
103-
return reportPlugins;
32+
public CustomConfigurationMavenProjectStub() throws IOException, XmlPullParserException {
33+
super("/custom/configuration");
10434
}
10535

10636
@Override

src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java

Lines changed: 4 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,12 @@
1919
package org.apache.maven.plugins.pmd.stubs;
2020

2121
import java.io.File;
22-
import java.io.FileInputStream;
23-
import java.io.InputStream;
22+
import java.io.IOException;
2423
import java.util.ArrayList;
2524
import java.util.List;
2625

27-
import org.apache.maven.artifact.Artifact;
28-
import org.apache.maven.model.Build;
29-
import org.apache.maven.model.Model;
3026
import org.apache.maven.model.ReportPlugin;
31-
import org.apache.maven.model.Scm;
32-
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
27+
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
3328

3429
/**
3530
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
@@ -38,70 +33,8 @@
3833
public class DefaultConfigurationMavenProjectStub extends PmdProjectStub {
3934
private List<ReportPlugin> reportPlugins = new ArrayList<>();
4035

41-
private Build build;
42-
43-
public DefaultConfigurationMavenProjectStub() {
44-
MavenXpp3Reader pomReader = new MavenXpp3Reader();
45-
Model model = null;
46-
47-
try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
48-
model = pomReader.read(is);
49-
setModel(model);
50-
} catch (Exception e) {
51-
}
52-
53-
setGroupId(model.getGroupId());
54-
setArtifactId(model.getArtifactId());
55-
setVersion(model.getVersion());
56-
setName(model.getName());
57-
setUrl(model.getUrl());
58-
setPackaging(model.getPackaging());
59-
60-
Scm scm = new Scm();
61-
scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
62-
setScm(scm);
63-
64-
Build build = new Build();
65-
build.setFinalName(model.getBuild().getFinalName());
66-
build.setDirectory(getBasedir() + "/target");
67-
build.setSourceDirectory(getBasedir().getAbsolutePath());
68-
setBuild(build);
69-
70-
setReportPlugins(model.getReporting().getPlugins());
71-
72-
String basedir = getBasedir().getAbsolutePath();
73-
List<String> compileSourceRoots = new ArrayList<>();
74-
compileSourceRoots.add(basedir + "/def/configuration");
75-
setCompileSourceRoots(compileSourceRoots);
76-
77-
File file = new File(getBasedir().getAbsolutePath() + "/pom.xml");
78-
setFile(file);
79-
80-
Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
81-
artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
82-
setArtifact(artifact);
83-
}
84-
85-
public void setReportPlugins(List<ReportPlugin> plugins) {
86-
this.reportPlugins = plugins;
87-
}
88-
89-
/** {@inheritDoc} */
90-
@Override
91-
public List<ReportPlugin> getReportPlugins() {
92-
return reportPlugins;
93-
}
94-
95-
/** {@inheritDoc} */
96-
@Override
97-
public void setBuild(Build build) {
98-
this.build = build;
99-
}
100-
101-
/** {@inheritDoc} */
102-
@Override
103-
public Build getBuild() {
104-
return build;
36+
public DefaultConfigurationMavenProjectStub() throws XmlPullParserException, IOException {
37+
super("/def/configuration");
10538
}
10639

10740
@Override

src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -19,73 +19,18 @@
1919
package org.apache.maven.plugins.pmd.stubs;
2020

2121
import java.io.File;
22-
import java.io.FileInputStream;
23-
import java.io.InputStream;
24-
import java.util.ArrayList;
25-
import java.util.List;
22+
import java.io.IOException;
2623

27-
import org.apache.maven.artifact.Artifact;
28-
import org.apache.maven.model.Build;
29-
import org.apache.maven.model.Model;
30-
import org.apache.maven.model.Scm;
31-
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
24+
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
3225

3326
/**
3427
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
3528
* @version $Id$
3629
*/
3730
public class InvalidFormatMavenProjectStub extends PmdProjectStub {
38-
private Build build;
3931

40-
public InvalidFormatMavenProjectStub() {
41-
MavenXpp3Reader pomReader = new MavenXpp3Reader();
42-
Model model = null;
43-
44-
try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
45-
model = pomReader.read(is);
46-
setModel(model);
47-
} catch (Exception e) {
48-
}
49-
50-
setGroupId(model.getGroupId());
51-
setArtifactId(model.getArtifactId());
52-
setVersion(model.getVersion());
53-
setName(model.getName());
54-
setUrl(model.getUrl());
55-
setPackaging(model.getPackaging());
56-
57-
Scm scm = new Scm();
58-
scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
59-
setScm(scm);
60-
61-
Build build = new Build();
62-
build.setFinalName(model.getBuild().getFinalName());
63-
build.setDirectory(getBasedir() + "/target");
64-
build.setSourceDirectory(getBasedir().getAbsolutePath());
65-
setBuild(build);
66-
67-
String basedir = getBasedir().getAbsolutePath();
68-
List<String> compileSourceRoots = new ArrayList<>();
69-
compileSourceRoots.add(basedir + "/invalid/format");
70-
setCompileSourceRoots(compileSourceRoots);
71-
72-
Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
73-
artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
74-
setArtifact(artifact);
75-
76-
setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
77-
}
78-
79-
/** {@inheritDoc} */
80-
@Override
81-
public void setBuild(Build build) {
82-
this.build = build;
83-
}
84-
85-
/** {@inheritDoc} */
86-
@Override
87-
public Build getBuild() {
88-
return build;
32+
public InvalidFormatMavenProjectStub() throws XmlPullParserException, IOException {
33+
super("/invalid/format");
8934
}
9035

9136
@Override

src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,61 @@
1919
package org.apache.maven.plugins.pmd.stubs;
2020

2121
import java.io.File;
22+
import java.io.FileInputStream;
23+
import java.io.IOException;
24+
import java.io.InputStream;
25+
import java.util.ArrayList;
2226
import java.util.Collections;
2327
import java.util.List;
2428

2529
import org.apache.maven.RepositoryUtils;
30+
import org.apache.maven.artifact.Artifact;
2631
import org.apache.maven.artifact.repository.ArtifactRepository;
2732
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
2833
import org.apache.maven.artifact.repository.MavenArtifactRepository;
2934
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
35+
import org.apache.maven.model.Build;
36+
import org.apache.maven.model.Model;
37+
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
3038
import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
39+
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
3140
import org.eclipse.aether.repository.RemoteRepository;
3241

3342
public abstract class PmdProjectStub extends MavenProjectStub {
43+
44+
public PmdProjectStub(String dir) throws XmlPullParserException, IOException {
45+
MavenXpp3Reader pomReader = new MavenXpp3Reader();
46+
47+
try (InputStream in = new FileInputStream(getBasedir() + "/" + getPOM())) {
48+
Model model = pomReader.read(in);
49+
50+
setModel(model);
51+
setGroupId(model.getGroupId());
52+
setArtifactId(model.getArtifactId());
53+
setVersion(model.getVersion());
54+
setName(model.getName());
55+
setUrl(model.getUrl());
56+
setPackaging(model.getPackaging());
57+
58+
Build build = new Build();
59+
build.setFinalName(model.getBuild().getFinalName());
60+
build.setDirectory(getBasedir() + "/target");
61+
build.setSourceDirectory(getBasedir().getAbsolutePath());
62+
setBuild(build);
63+
}
64+
65+
String basedir = getBasedir().getAbsolutePath();
66+
List<String> compileSourceRoots = new ArrayList<>();
67+
compileSourceRoots.add(basedir + dir);
68+
setCompileSourceRoots(compileSourceRoots);
69+
70+
Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
71+
artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
72+
setArtifact(artifact);
73+
74+
setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
75+
}
76+
3477
/**
3578
* @return the POM file name
3679
*/

0 commit comments

Comments
 (0)