From 50397c42b9f4ede4ed82c055caaf3ef0733f3aba Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Sat, 3 Dec 2022 02:13:19 +0100 Subject: [PATCH] [MDEP-903] Upgrade to Doxia 2.0.0 Milestone Stack This closes #314 --- pom.xml | 57 +++---------------- src/it/projects/analyze-report/verify.bsh | 6 +- .../verify.bsh | 10 ++-- ...lyzeReportMojo.java => AnalyzeReport.java} | 4 +- .../maven/plugins/dependency/TestSkip.java | 48 ++++++++++++++-- 5 files changed, 62 insertions(+), 63 deletions(-) rename src/main/java/org/apache/maven/plugins/dependency/analyze/{AnalyzeReportMojo.java => AnalyzeReport.java} (96%) diff --git a/pom.xml b/pom.xml index 427e1b565..1d08ac898 100644 --- a/pom.xml +++ b/pom.xml @@ -87,30 +87,17 @@ under the License. - 3.6.3 8 - + 3.6.3 + 1.4.1 + 1.7.36 9.4.55.v20240627 4.11.0 4.10.0 3.3.0 - 1.4.1 - 1.7.36 - 2024-06-18T07:04:19Z - - - - - org.apache.commons - commons-text - 1.12.0 - - - - @@ -156,49 +143,23 @@ under the License. provided - + org.apache.maven.doxia doxia-sink-api - 1.12.0 - - - org.codehaus.plexus - plexus-container-default - - + 2.0.0-M12 + + org.apache.maven.reporting maven-reporting-api - 3.1.1 + 4.0.0-M12 org.apache.maven.reporting maven-reporting-impl - 3.2.0 - - - org.codehaus.plexus - plexus-container-default - - - org.apache.maven - maven-artifact - - - org.apache.maven - maven-core - - - org.apache.maven - maven-model - - - org.apache.maven - maven-plugin-api - - + 4.0.0-M15 commons-io diff --git a/src/it/projects/analyze-report/verify.bsh b/src/it/projects/analyze-report/verify.bsh index d32f9f902..55b19f0b5 100644 --- a/src/it/projects/analyze-report/verify.bsh +++ b/src/it/projects/analyze-report/verify.bsh @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -19,7 +19,7 @@ import java.io.*; -File htmlFile = new File( basedir, "target/site/dependency-analysis.html" ); +File htmlFile = new File( basedir, "target/reports/dependency-analysis.html" ); if ( !htmlFile.isFile() ) { diff --git a/src/it/projects/analyze-testDependencyWithNonTestScope/verify.bsh b/src/it/projects/analyze-testDependencyWithNonTestScope/verify.bsh index ba623ba7a..46c27ff4b 100644 --- a/src/it/projects/analyze-testDependencyWithNonTestScope/verify.bsh +++ b/src/it/projects/analyze-testDependencyWithNonTestScope/verify.bsh @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -24,7 +24,7 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; -File htmlFile = new File( basedir, "target/site/dependency-analysis.html" ); +File htmlFile = new File( basedir, "target/reports/dependency-analysis.html" ); if ( !htmlFile.isFile() ) { @@ -37,7 +37,7 @@ if ( htmlFile.length() == 0 ) Document doc = Jsoup.parse( htmlFile, "UTF-8"); -Elements entry = doc.select( "#contentBox > section > section:nth-child(5) > table > tbody > tr.b" ); +Elements entry = doc.select( "#bodyColumn > section > section:nth-child(5) > table > tbody > tr.b" ); if( entry.isEmpty() ) { @@ -50,7 +50,7 @@ else if ( entry.size() != 1 ) } Element groupIdElement = doc.select( -"#contentBox > section > section:nth-child(5) > table > tbody > tr.b > td:nth-child(1)" ).first(); +"#bodyColumn > section > section:nth-child(5) > table > tbody > tr.b > td:nth-child(1)" ).first(); String groupId = groupIdElement.text(); diff --git a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReportMojo.java b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReport.java similarity index 96% rename from src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReportMojo.java rename to src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReport.java index 0c8d4ce60..239bc825c 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReportMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeReport.java @@ -42,7 +42,7 @@ */ @Mojo(name = "analyze-report", requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true) @Execute(phase = LifecyclePhase.TEST_COMPILE) -public class AnalyzeReportMojo extends AbstractMavenReport { +public class AnalyzeReport extends AbstractMavenReport { // fields ----------------------------------------------------------------- /** @@ -124,13 +124,11 @@ public void executeReport(Locale locale) throws MavenReportException { @Override public boolean canGenerateReport() { if (skip) { - getLog().info("Skipping plugin execution"); return false; } // Step 0: Checking pom availability if ("pom".equals(project.getPackaging())) { - getLog().info("Skipping pom project"); return false; } diff --git a/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java b/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java index b52a9e812..1fbcacb08 100644 --- a/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java +++ b/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java @@ -21,7 +21,11 @@ import java.io.File; import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.Plugin; import org.apache.maven.plugin.Mojo; +import org.apache.maven.plugin.MojoExecution; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugins.dependency.testUtils.stubs.DependencyProjectStub; import org.apache.maven.project.MavenProject; @@ -56,7 +60,7 @@ public void testSkipAnalyzeOnly() throws Exception { } public void testSkipAnalyzeReport() throws Exception { - doSpecialTest("analyze-report"); + doSpecialTest("analyze-report", true); } public void testSkipAnalyzeDuplicate() throws Exception { @@ -124,19 +128,55 @@ protected void doTest(String mojoName) throws Exception { } protected void doSpecialTest(String mojoName) throws Exception { - doConfigTest(mojoName, "plugin-" + mojoName + "-config.xml"); + doConfigTest(mojoName, "plugin-" + mojoName + "-config.xml", false); + } + + protected void doSpecialTest(String mojoName, boolean addMojoExecution) throws Exception { + doConfigTest(mojoName, "plugin-" + mojoName + "-config.xml", addMojoExecution); } private void doConfigTest(String mojoName, String configFile) throws Exception { + doConfigTest(mojoName, configFile, false); + } + + private void doConfigTest(String mojoName, String configFile, boolean addMojoExecution) throws Exception { File testPom = new File(getBasedir(), "target/test-classes/unit/skip-test/" + configFile); Mojo mojo = lookupMojo(mojoName, testPom); - assertNotNull(mojo); + assertNotNull("Mojo not found.", mojo); + + if (addMojoExecution) { + setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution(mojoName)); + } Log log = mock(Log.class); mojo.setLog(log); mojo.execute(); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); verify(log, atLeastOnce()).info(captor.capture()); - assertTrue(captor.getValue().contains("Skipping plugin execution")); + String skipMessage; + if (addMojoExecution) { + MojoExecution me = getMockMojoExecution(mojoName); + String reportMojoInfo = me.getPlugin().getId() + ":" + me.getGoal(); + skipMessage = "Skipping " + reportMojoInfo + " report goal"; + } else { + skipMessage = "Skipping plugin execution"; + } + assertTrue(captor.getValue().contains(skipMessage)); + } + + private MojoExecution getMockMojoExecution(String goal) { + MojoDescriptor md = new MojoDescriptor(); + md.setGoal(goal); + + MojoExecution me = new MojoExecution(md); + + PluginDescriptor pd = new PluginDescriptor(); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-dependency-plugin"); + pd.setPlugin(p); + md.setPluginDescriptor(pd); + + return me; } }