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
      */

Reply via email to