This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch update-module in repository https://gitbox.apache.org/repos/asf/maven-reporting-exec.git
commit 91dfb34ed92737b0101cf4668331130325e63a94 Author: Tamas Cservenak <ta...@cservenak.net> AuthorDate: Sun Jul 10 18:39:23 2022 +0200 [MSHARED-1105] Replace Plexus Annotations with JSR 330 and upgrade relevant dependencies * Drop m-shared-utils (was used only for StringUtils!!!) * Drop plexus container default and plexus annotations, migrate to JSR 330 * Set plexus-classworld scope proper, IS USED in main * Upgrade Maven Project Info Reports Plugin to 3.4.0 in ITs This closes #14 --- pom.xml | 103 +++------------------ .../exec/DefaultMavenPluginManagerHelper.java | 20 +++- .../reporting/exec/DefaultMavenReportExecutor.java | 37 +++++--- 3 files changed, 55 insertions(+), 105 deletions(-) diff --git a/pom.xml b/pom.xml index 9a989e8..3141734 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ <slf4jVersion>1.7.36</slf4jVersion> <project.build.outputTimestamp>2022-04-23T19:22:30Z</project.build.outputTimestamp> <sitePluginVersion>4.0.0-M2</sitePluginVersion> - <projectInfoReportsPluginVersion>3.3.0</projectInfoReportsPluginVersion> + <projectInfoReportsPluginVersion>3.4.0</projectInfoReportsPluginVersion> </properties> <dependencies> @@ -103,20 +103,10 @@ <artifactId>maven-settings-builder</artifactId> <version>${mavenVersion}</version> </dependency> - <dependency> - <groupId>org.apache.maven.shared</groupId> - <artifactId>maven-shared-utils</artifactId> - <version>3.3.4</version> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-annotations</artifactId> - <scope>provided</scope> - </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>3.1.0</version><!-- do not upgrade to 3.2.0+ because it adds Xpp3Dom.getInputLocation(): see MSHARED-921 --> + <version>3.4.2</version> </dependency> <dependency> @@ -130,13 +120,16 @@ <artifactId>slf4j-api</artifactId> <version>${slf4jVersion}</version> </dependency> + <dependency> + <groupId>javax.inject</groupId> + <artifactId>javax.inject</artifactId> + <version>1</version> + </dependency> - <!-- Eclipse Aether for Maven 3.1+ --> <dependency> <groupId>org.eclipse.aether</groupId> <artifactId>aether-api</artifactId> <version>${aetherVersion}</version> - <optional>true</optional> </dependency> <dependency> <groupId>org.eclipse.aether</groupId> @@ -144,6 +137,12 @@ <version>${aetherVersion}</version> </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-classworlds</artifactId> + <version>2.6.0</version> + </dependency> + <!-- test --> <dependency> <groupId>org.apache.maven.plugin-testing</groupId> @@ -188,13 +187,6 @@ <scope>test</scope> </dependency> - <!-- Used actually in tests only, but if in test scope the transitive dep will be gone --> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-classworlds</artifactId> - <version>2.5.2</version> - </dependency> - <dependency> <groupId>org.eclipse.aether</groupId> <artifactId>aether-connector-basic</artifactId> @@ -225,46 +217,12 @@ <build> <plugins> - <plugin><!-- shade Xpp3DomUtils that does not require Xpp3Dom.getInputLocation(): see MSHARED-921 --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <artifactSet> - <includes> - <include>org.codehaus.plexus:plexus-utils</include> - </includes> - </artifactSet> - <filters> - <filter> - <artifact>org.codehaus.plexus:plexus-utils</artifact> - <includes> - <include>org/codehaus/plexus/util/xml/Xpp3DomUtils.class</include> - </includes> - </filter> - </filters> - <relocations> - <relocation> - <pattern>org.codehaus.plexus.util.xml.Xpp3DomUtils</pattern> - <shadedPattern>org.apache.maven.reporting.exec.xml.Xpp3DomUtils</shadedPattern> - </relocation> - </relocations> - </configuration> - </execution> - </executions> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <localRepository>${settings.localRepository}</localRepository> - <mavenHome>${env.M2_HOME}</mavenHome> </systemPropertyVariables> <!-- <forkMode>none</forkMode> @@ -272,39 +230,8 @@ </configuration> </plugin> <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-metadata</artifactId> - <executions> - <execution> - <goals> - <goal>generate-metadata</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>enforce</goal> - </goals> - <id>ensure-no-container-api</id> - <configuration> - <rules> - <bannedDependencies> - <excludes> - <exclude>org.codehaus.plexus:plexus-component-api</exclude> - <exclude>org.codehaus.plexus:plexus-container-default</exclude> - </excludes> - <message>The new containers are not supported. You probably added a dependency that is missing the exclusions.</message> - </bannedDependencies> - </rules> - <fail>true</fail> - </configuration> - </execution> - </executions> + <groupId>org.eclipse.sisu</groupId> + <artifactId>sisu-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> diff --git a/src/main/java/org/apache/maven/reporting/exec/DefaultMavenPluginManagerHelper.java b/src/main/java/org/apache/maven/reporting/exec/DefaultMavenPluginManagerHelper.java index e24ae3b..8c68b00 100644 --- a/src/main/java/org/apache/maven/reporting/exec/DefaultMavenPluginManagerHelper.java +++ b/src/main/java/org/apache/maven/reporting/exec/DefaultMavenPluginManagerHelper.java @@ -19,6 +19,10 @@ package org.apache.maven.reporting.exec; * under the License. */ +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; + import java.util.List; import org.apache.maven.execution.MavenSession; @@ -29,22 +33,28 @@ import org.apache.maven.plugin.PluginContainerException; import org.apache.maven.plugin.PluginDescriptorParsingException; import org.apache.maven.plugin.PluginResolutionException; import org.apache.maven.plugin.descriptor.PluginDescriptor; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.util.filter.ExclusionsDependencyFilter; +import static java.util.Objects.requireNonNull; + /** * <p>DefaultMavenPluginManagerHelper class.</p> */ -@Component( role = MavenPluginManagerHelper.class ) +@Singleton +@Named public class DefaultMavenPluginManagerHelper implements MavenPluginManagerHelper { - @Requirement - protected MavenPluginManager mavenPluginManager; + private final MavenPluginManager mavenPluginManager; + + @Inject + public DefaultMavenPluginManagerHelper( MavenPluginManager mavenPluginManager ) + { + this.mavenPluginManager = requireNonNull( mavenPluginManager ); + } private DependencyFilter createExclusionsDependencyFilter( List<String> artifactIdsList ) { diff --git a/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java b/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java index 3f57bc1..faa1abc 100644 --- a/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java +++ b/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java @@ -19,6 +19,10 @@ package org.apache.maven.reporting.exec; * under the License. */ +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -46,15 +50,15 @@ import org.apache.maven.plugin.version.PluginVersionResolver; import org.apache.maven.plugin.version.PluginVersionResult; import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.MavenReport; -import org.apache.maven.shared.utils.StringUtils; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.configuration.PlexusConfiguration; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static java.util.Objects.requireNonNull; + /** * <p> * This component will build some {@link MavenReportExecution} from {@link MavenReportExecutorRequest}. If a @@ -95,23 +99,20 @@ import org.slf4j.LoggerFactory; * * @author Olivier Lamy */ -@Component( role = MavenReportExecutor.class ) +@Singleton +@Named public class DefaultMavenReportExecutor implements MavenReportExecutor { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultMavenReportExecutor.class ); - @Requirement - protected MavenPluginManager mavenPluginManager; + private final MavenPluginManager mavenPluginManager; - @Requirement - protected MavenPluginManagerHelper mavenPluginManagerHelper; + private final MavenPluginManagerHelper mavenPluginManagerHelper; - @Requirement - protected LifecycleExecutor lifecycleExecutor; + private final LifecycleExecutor lifecycleExecutor; - @Requirement - protected PluginVersionResolver pluginVersionResolver; + private final PluginVersionResolver pluginVersionResolver; private static final List<String> IMPORTS = Arrays.asList( "org.apache.maven.reporting.MavenReport", "org.apache.maven.reporting.MavenMultiPageReport", @@ -129,6 +130,18 @@ public class DefaultMavenReportExecutor private static final List<String> EXCLUDES = Arrays.asList( "doxia-site-renderer", "doxia-sink-api", "maven-reporting-api" ); + @Inject + public DefaultMavenReportExecutor( MavenPluginManager mavenPluginManager, + MavenPluginManagerHelper mavenPluginManagerHelper, + LifecycleExecutor lifecycleExecutor, + PluginVersionResolver pluginVersionResolver ) + { + this.mavenPluginManager = requireNonNull( mavenPluginManager ); + this.mavenPluginManagerHelper = requireNonNull( mavenPluginManagerHelper ); + this.lifecycleExecutor = requireNonNull( lifecycleExecutor ); + this.pluginVersionResolver = requireNonNull( pluginVersionResolver ); + } + @Override public List<MavenReportExecution> buildMavenReports( MavenReportExecutorRequest mavenReportExecutorRequest ) throws MojoExecutionException