You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2025/06/12 11:15:07 UTC
(maven-pmd-plugin) branch master updated: [MPMD-412] Simplify stub setup by not swallowing exceptions (#226)
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 04894a5 [MPMD-412] Simplify stub setup by not swallowing exceptions (#226)
04894a5 is described below
commit 04894a5c33feac6ed398adbc8d5e6b8bcd325d96
Author: Elliotte Rusty Harold <el...@users.noreply.github.com>
AuthorDate: Thu Jun 12 11:15:02 2025 +0000
[MPMD-412] Simplify stub setup by not swallowing exceptions (#226)
* Simplify stub setup by not swallowing exceptions
---
.../apache/maven/plugins/pmd/PmdReportTest.java | 22 +++---
.../stubs/CustomConfigurationMavenProjectStub.java | 78 ++--------------------
.../DefaultConfigurationMavenProjectStub.java | 75 ++-------------------
.../pmd/stubs/InvalidFormatMavenProjectStub.java | 63 ++---------------
.../maven/plugins/pmd/stubs/PmdProjectStub.java | 43 ++++++++++++
5 files changed, 63 insertions(+), 218 deletions(-)
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
index 462a3e4..5e52ade 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
@@ -384,9 +384,7 @@ public class PmdReportTest extends AbstractPmdReportTestCase {
}
/**
- * Verify the correct working of the locationTemp method
- *
- * @throws Exception
+ * Verify the correct working of the locationTemp method.
*/
public void testLocationTemp() throws Exception {
@@ -403,9 +401,7 @@ public class PmdReportTest extends AbstractPmdReportTestCase {
}
/**
- * Verify that suppressMarker works
- *
- * @throws Exception
+ * Verify that suppressMarker works.
*/
public void testSuppressMarkerConfiguration() throws Exception {
File generatedReport =
@@ -425,11 +421,10 @@ public class PmdReportTest extends AbstractPmdReportTestCase {
str.contains("suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
// check if there's a link to the JXR files
- str = readFile(generatedReport);
-
- assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
+ String report = readFile(generatedReport);
+ assertTrue(report.contains("/xref/def/configuration/AppSample.html#L27"));
// suppressed violation
- assertTrue(str.contains("Avoid unused private fields such as 'unusedVar2'."));
+ assertTrue(report.contains("Avoid unused private fields such as 'unusedVar2'."));
}
public void testSuppressMarkerConfigurationWithoutRendering() throws Exception {
@@ -450,11 +445,10 @@ public class PmdReportTest extends AbstractPmdReportTestCase {
str.contains("suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
// check if there's a link to the JXR files
- str = readFile(generatedReport);
-
- assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
+ String report = readFile(generatedReport);
+ assertTrue(report.contains("/xref/def/configuration/AppSample.html#L27"));
// suppressed violations are not rendered
- assertFalse(str.contains("Avoid unused private fields such as 'unusedVar2'."));
+ assertFalse(report.contains("Avoid unused private fields such as 'unusedVar2'."));
}
public void testJspConfiguration() throws Exception {
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
index 1d79c44..df15825 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
@@ -19,88 +19,18 @@
package org.apache.maven.plugins.pmd.stubs;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.io.IOException;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @version $Id$
*/
public class CustomConfigurationMavenProjectStub extends PmdProjectStub {
- private Build build;
- private List<ReportPlugin> reportPlugins = new ArrayList<>();
-
- public CustomConfigurationMavenProjectStub() {
- MavenXpp3Reader pomReader = new MavenXpp3Reader();
- Model model = null;
-
- try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
- model = pomReader.read(is);
- setModel(model);
- } catch (Exception e) {
- }
-
- setGroupId(model.getGroupId());
- setArtifactId(model.getArtifactId());
- setVersion(model.getVersion());
- setName(model.getName());
- setUrl(model.getUrl());
- setPackaging(model.getPackaging());
-
- Scm scm = new Scm();
- scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
- setScm(scm);
-
- Build build = new Build();
- build.setFinalName(model.getBuild().getFinalName());
- build.setDirectory(getBasedir() + "/target");
- build.setSourceDirectory(getBasedir().getAbsolutePath());
- setBuild(build);
-
- setReportPlugins(model.getReporting().getPlugins());
-
- String basedir = getBasedir().getAbsolutePath();
- List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add(basedir + "/custom/configuration");
- setCompileSourceRoots(compileSourceRoots);
-
- Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
- artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
- setArtifact(artifact);
-
- setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBuild(Build build) {
- this.build = build;
- }
-
- /** {@inheritDoc} */
- @Override
- public Build getBuild() {
- return build;
- }
-
- public void setReportPlugins(List<ReportPlugin> plugins) {
- this.reportPlugins = plugins;
- }
-
- /** {@inheritDoc} */
- @Override
- public List<ReportPlugin> getReportPlugins() {
- return reportPlugins;
+ public CustomConfigurationMavenProjectStub() throws IOException, XmlPullParserException {
+ super("/custom/configuration");
}
@Override
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
index ba1bc72..518cdfb 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
@@ -19,17 +19,12 @@
package org.apache.maven.plugins.pmd.stubs;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Model;
import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
@@ -38,70 +33,8 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
public class DefaultConfigurationMavenProjectStub extends PmdProjectStub {
private List<ReportPlugin> reportPlugins = new ArrayList<>();
- private Build build;
-
- public DefaultConfigurationMavenProjectStub() {
- MavenXpp3Reader pomReader = new MavenXpp3Reader();
- Model model = null;
-
- try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
- model = pomReader.read(is);
- setModel(model);
- } catch (Exception e) {
- }
-
- setGroupId(model.getGroupId());
- setArtifactId(model.getArtifactId());
- setVersion(model.getVersion());
- setName(model.getName());
- setUrl(model.getUrl());
- setPackaging(model.getPackaging());
-
- Scm scm = new Scm();
- scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
- setScm(scm);
-
- Build build = new Build();
- build.setFinalName(model.getBuild().getFinalName());
- build.setDirectory(getBasedir() + "/target");
- build.setSourceDirectory(getBasedir().getAbsolutePath());
- setBuild(build);
-
- setReportPlugins(model.getReporting().getPlugins());
-
- String basedir = getBasedir().getAbsolutePath();
- List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add(basedir + "/def/configuration");
- setCompileSourceRoots(compileSourceRoots);
-
- File file = new File(getBasedir().getAbsolutePath() + "/pom.xml");
- setFile(file);
-
- Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
- artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
- setArtifact(artifact);
- }
-
- public void setReportPlugins(List<ReportPlugin> plugins) {
- this.reportPlugins = plugins;
- }
-
- /** {@inheritDoc} */
- @Override
- public List<ReportPlugin> getReportPlugins() {
- return reportPlugins;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBuild(Build build) {
- this.build = build;
- }
-
- /** {@inheritDoc} */
- @Override
- public Build getBuild() {
- return build;
+ public DefaultConfigurationMavenProjectStub() throws XmlPullParserException, IOException {
+ super("/def/configuration");
}
@Override
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
index 381fff9..902b86d 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
@@ -19,73 +19,18 @@
package org.apache.maven.plugins.pmd.stubs;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.io.IOException;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @version $Id$
*/
public class InvalidFormatMavenProjectStub extends PmdProjectStub {
- private Build build;
- public InvalidFormatMavenProjectStub() {
- MavenXpp3Reader pomReader = new MavenXpp3Reader();
- Model model = null;
-
- try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) {
- model = pomReader.read(is);
- setModel(model);
- } catch (Exception e) {
- }
-
- setGroupId(model.getGroupId());
- setArtifactId(model.getArtifactId());
- setVersion(model.getVersion());
- setName(model.getName());
- setUrl(model.getUrl());
- setPackaging(model.getPackaging());
-
- Scm scm = new Scm();
- scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
- setScm(scm);
-
- Build build = new Build();
- build.setFinalName(model.getBuild().getFinalName());
- build.setDirectory(getBasedir() + "/target");
- build.setSourceDirectory(getBasedir().getAbsolutePath());
- setBuild(build);
-
- String basedir = getBasedir().getAbsolutePath();
- List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add(basedir + "/invalid/format");
- setCompileSourceRoots(compileSourceRoots);
-
- Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
- artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
- setArtifact(artifact);
-
- setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBuild(Build build) {
- this.build = build;
- }
-
- /** {@inheritDoc} */
- @Override
- public Build getBuild() {
- return build;
+ public InvalidFormatMavenProjectStub() throws XmlPullParserException, IOException {
+ super("/invalid/format");
}
@Override
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
index 1a0d86f..0f9a70e 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
@@ -19,18 +19,61 @@
package org.apache.maven.plugins.pmd.stubs;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.MavenArtifactRepository;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.eclipse.aether.repository.RemoteRepository;
public abstract class PmdProjectStub extends MavenProjectStub {
+
+ public PmdProjectStub(String dir) throws XmlPullParserException, IOException {
+ MavenXpp3Reader pomReader = new MavenXpp3Reader();
+
+ try (InputStream in = new FileInputStream(getBasedir() + "/" + getPOM())) {
+ Model model = pomReader.read(in);
+
+ setModel(model);
+ setGroupId(model.getGroupId());
+ setArtifactId(model.getArtifactId());
+ setVersion(model.getVersion());
+ setName(model.getName());
+ setUrl(model.getUrl());
+ setPackaging(model.getPackaging());
+
+ Build build = new Build();
+ build.setFinalName(model.getBuild().getFinalName());
+ build.setDirectory(getBasedir() + "/target");
+ build.setSourceDirectory(getBasedir().getAbsolutePath());
+ setBuild(build);
+ }
+
+ String basedir = getBasedir().getAbsolutePath();
+ List<String> compileSourceRoots = new ArrayList<>();
+ compileSourceRoots.add(basedir + dir);
+ setCompileSourceRoots(compileSourceRoots);
+
+ Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
+ artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
+ setArtifact(artifact);
+
+ setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
+ }
+
/**
* @return the POM file name
*/