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 <elh...@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:och...@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:och...@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:och...@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 */