diff --git a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java index a621423d..d4d46f9b 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoReport.java @@ -36,7 +36,6 @@ import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoExecution; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilder; @@ -61,31 +60,6 @@ * @since 2.0 */ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { - // ---------------------------------------------------------------------- - // Mojo components - // ---------------------------------------------------------------------- - - /** - * Artifact Resolver component. - */ - @Component - protected ArtifactResolver resolver; - - /** - * Artifact Factory component. - */ - @Component - RepositorySystem repositorySystem; - - /** - * Internationalization component, could support also custom bundle using {@link #customBundle}. - */ - @Component - private I18N i18n; - - @Component - protected ProjectBuilder projectBuilder; - // ---------------------------------------------------------------------- // Mojo parameters // ---------------------------------------------------------------------- @@ -152,6 +126,35 @@ public abstract class AbstractProjectInfoReport extends AbstractMavenReport { @Parameter(defaultValue = "${localRepository}", readonly = true, required = true) protected ArtifactRepository localRepository; + // ---------------------------------------------------------------------- + // Mojo components + // ---------------------------------------------------------------------- + + /** + * Artifact Resolver component. + */ + protected final ArtifactResolver resolver; + + /** + * Artifact Factory component. + */ + final RepositorySystem repositorySystem; + + /** + * Internationalization component, could support also custom bundle using {@link #customBundle}. + */ + private I18N i18n; + + protected final ProjectBuilder projectBuilder; + + protected AbstractProjectInfoReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + this.resolver = resolver; + this.repositorySystem = repositorySystem; + this.i18n = i18n; + this.projectBuilder = projectBuilder; + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- @@ -209,7 +212,7 @@ protected MojoExecution getMojoExecution() { /** * @param pluginId The id of the plugin - * @return The information about the plugin. + * @return The information about the plugin */ protected Plugin getPlugin(String pluginId) { if ((getProject().getBuild() == null) || (getProject().getBuild().getPluginsAsMap() == null)) { @@ -232,9 +235,9 @@ protected Plugin getPlugin(String pluginId) { } /** - * @param pluginId The pluginId - * @param param The child which should be checked. - * @return The value of the dom tree. + * @param pluginId the pluginId + * @param param the child which should be checked + * @return the value of the dom tree */ protected String getPluginParameter(String pluginId, String param) { Plugin plugin = getPlugin(pluginId); diff --git a/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java index dc3fbf40..96e80a13 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/CiManagementReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -29,7 +31,10 @@ import org.apache.maven.model.Model; import org.apache.maven.model.Notifier; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; /** @@ -40,6 +45,12 @@ */ @Mojo(name = "ci-management") public class CiManagementReport extends AbstractProjectInfoReport { + + @Inject + public CiManagementReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java index 2d60f2af..d6f246a9 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java @@ -18,6 +18,9 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; +import javax.inject.Named; + import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; @@ -32,21 +35,24 @@ import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.report.projectinfo.dependencies.Dependencies; import org.apache.maven.report.projectinfo.dependencies.DependenciesReportConfiguration; import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils; import org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder; import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException; import org.apache.maven.shared.dependency.graph.DependencyNode; import org.apache.maven.shared.jar.classes.JarClassesAnalysis; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; +import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.ReaderFactory; @@ -64,6 +70,19 @@ public class DependenciesReport extends AbstractProjectInfoReport { */ private static final String RESOURCES_DIR = "org/apache/maven/report/projectinfo/resources"; + // ---------------------------------------------------------------------- + // Mojo parameters + // ---------------------------------------------------------------------- + + /** + * Display file details for each dependency, such as: file size, number of + * classes, number of packages etc. + * + * @since 2.1 + */ + @Parameter(property = "dependency.details.enabled", defaultValue = "true") + private boolean dependencyDetailsEnabled; + // ---------------------------------------------------------------------- // Mojo components // ---------------------------------------------------------------------- @@ -73,37 +92,36 @@ public class DependenciesReport extends AbstractProjectInfoReport { * * @since 2.5 */ - @Component(hint = "default") - private DependencyGraphBuilder dependencyGraphBuilder; + private final DependencyGraphBuilder dependencyGraphBuilder; /** * Jar classes analyzer component. * * @since 2.1 */ - @Component - private JarClassesAnalysis classesAnalyzer; + private final JarClassesAnalysis classesAnalyzer; /** * Repository metadata component. * * @since 2.1 */ - @Component - private RepositoryMetadataManager repositoryMetadataManager; + private final RepositoryMetadataManager repositoryMetadataManager; - // ---------------------------------------------------------------------- - // Mojo parameters - // ---------------------------------------------------------------------- - - /** - * Display file details for each dependency, such as: file size, number of - * classes, number of packages etc. - * - * @since 2.1 - */ - @Parameter(property = "dependency.details.enabled", defaultValue = "true") - private boolean dependencyDetailsEnabled; + @Inject + protected DependenciesReport( + ArtifactResolver resolver, + RepositorySystem repositorySystem, + I18N i18n, + ProjectBuilder projectBuilder, + @Named("default") DependencyGraphBuilder dependencyGraphBuilder, + JarClassesAnalysis classesAnalyzer, + RepositoryMetadataManager repositoryMetadataManager) { + super(resolver, repositorySystem, i18n, projectBuilder); + this.dependencyGraphBuilder = dependencyGraphBuilder; + this.classesAnalyzer = classesAnalyzer; + this.repositoryMetadataManager = repositoryMetadataManager; + } // ---------------------------------------------------------------------- // Public methods diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java index b143aa7d..e5edfd44 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -37,14 +39,15 @@ import org.apache.maven.doxia.sink.SinkEventAttributes; import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet; import org.apache.maven.model.Dependency; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.report.projectinfo.dependencies.DependencyVersionMap; import org.apache.maven.report.projectinfo.dependencies.SinkSerializingDependencyNodeVisitor; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; import org.apache.maven.shared.artifact.filter.StrictPatternIncludesArtifactFilter; import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder; import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilderException; @@ -57,6 +60,8 @@ import org.apache.maven.shared.dependency.graph.traversal.CollectingDependencyNodeVisitor; import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; import org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; +import org.codehaus.plexus.i18n.I18N; /** * Generates the Project Dependency Convergence report for (reactor) builds. @@ -80,6 +85,10 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { private static final int FULL_CONVERGENCE = 100; + private ArtifactFilter filter = null; + + private Map projectMap = new HashMap<>(); + // ---------------------------------------------------------------------- // Mojo parameters // ---------------------------------------------------------------------- @@ -87,12 +96,18 @@ public class DependencyConvergenceReport extends AbstractProjectInfoReport { /** * Raw dependency collector builder, will use it to build dependency tree. */ - @Component - private DependencyCollectorBuilder dependencyCollectorBuilder; - - private ArtifactFilter filter = null; - - private Map projectMap = new HashMap<>(); + private final DependencyCollectorBuilder dependencyCollectorBuilder; + + @Inject + protected DependencyConvergenceReport( + ArtifactResolver resolver, + RepositorySystem repositorySystem, + I18N i18n, + ProjectBuilder projectBuilder, + DependencyCollectorBuilder dependencyCollectorBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + this.dependencyCollectorBuilder = dependencyCollectorBuilder; + } // ---------------------------------------------------------------------- // Public methods diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java index 549397a5..78bbd7fd 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyInformationReport.java @@ -18,13 +18,18 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Formatter; import java.util.Locale; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; /** @@ -39,26 +44,24 @@ public final class DependencyInformationReport extends AbstractProjectInfoReport private static final String JAR_PACKAGING = "jar"; private static final String PLUGIN_PACKAGING = "maven-plugin"; - /** - */ @Parameter(defaultValue = "${project.groupId}", required = true) protected String groupId; - /** - */ @Parameter(defaultValue = "${project.artifactId}", required = true) protected String artifactId; - /** - */ @Parameter(defaultValue = "${project.version}", required = true) protected String version; - /** - */ @Parameter(defaultValue = "${project.packaging}", required = true) protected String packaging; + @Inject + public DependencyInformationReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java index e44a54d1..84bbf617 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java @@ -18,19 +18,24 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Locale; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies; import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils; import org.apache.maven.report.projectinfo.dependencies.renderer.DependencyManagementRenderer; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; +import org.codehaus.plexus.i18n.I18N; /** * Generates the Project Dependency Management report. @@ -40,6 +45,16 @@ */ @Mojo(name = "dependency-management", requiresDependencyResolution = ResolutionScope.TEST) public class DependencyManagementReport extends AbstractProjectInfoReport { + + // ---------------------------------------------------------------------- + // Mojo parameters + // ---------------------------------------------------------------------- + + /** + * Lazy instantiation for management dependencies. + */ + private ManagementDependencies managementDependencies; + // ---------------------------------------------------------------------- // Mojo components // ---------------------------------------------------------------------- @@ -49,25 +64,27 @@ public class DependencyManagementReport extends AbstractProjectInfoReport { * * @since 2.4 */ - @Component - protected ArtifactMetadataSource artifactMetadataSource; + protected final ArtifactMetadataSource artifactMetadataSource; /** * Repository metadata component. * * @since 2.3 */ - @Component - private RepositoryMetadataManager repositoryMetadataManager; - - // ---------------------------------------------------------------------- - // Mojo parameters - // ---------------------------------------------------------------------- - - /** - * Lazy instantiation for management dependencies. - */ - private ManagementDependencies managementDependencies; + private final RepositoryMetadataManager repositoryMetadataManager; + + @Inject + protected DependencyManagementReport( + ArtifactResolver resolver, + RepositorySystem repositorySystem, + I18N i18n, + ProjectBuilder projectBuilder, + ArtifactMetadataSource artifactMetadataSource, + RepositoryMetadataManager repositoryMetadataManager) { + super(resolver, repositorySystem, i18n, projectBuilder); + this.artifactMetadataSource = artifactMetadataSource; + this.repositoryMetadataManager = repositoryMetadataManager; + } // ---------------------------------------------------------------------- // Public methods diff --git a/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java index 59b3d1a7..57c04f69 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DistributionManagementReport.java @@ -18,13 +18,18 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Locale; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.model.DistributionManagement; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -36,6 +41,12 @@ */ @Mojo(name = "distribution-management") public class DistributionManagementReport extends AbstractProjectInfoReport { + + @Inject + public DistributionManagementReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java b/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java index 5cfae0f9..306a710d 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/IndexReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.List; import java.util.Locale; @@ -29,6 +31,8 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; /** @@ -40,6 +44,12 @@ */ @Mojo(name = "index") public class IndexReport extends AbstractProjectInfoReport { + + @Inject + public IndexReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java index 60823485..c2ceb42e 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/IssueManagementReport.java @@ -18,13 +18,18 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Locale; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.model.IssueManagement; import org.apache.maven.model.Model; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; /** @@ -35,6 +40,12 @@ */ @Mojo(name = "issue-management") public class IssueManagementReport extends AbstractProjectInfoReport { + + @Inject + public IssueManagementReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java b/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java index 25d166d2..2adcd653 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/LicensesReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -34,8 +36,11 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; import org.apache.maven.settings.Settings; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -75,6 +80,12 @@ public class LicensesReport extends AbstractProjectInfoReport { @Parameter private String licenseFileEncoding; + @Inject + public LicensesReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java index 2d4e4252..6246736f 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.net.URI; import java.util.ArrayList; import java.util.Iterator; @@ -29,7 +31,10 @@ import org.apache.maven.model.Model; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -42,6 +47,12 @@ */ @Mojo(name = "mailing-lists") public class MailingListsReport extends AbstractProjectInfoReport { + + @Inject + public MailingListsReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java b/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java index b9f189ee..9cc4e0ae 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -37,6 +39,8 @@ import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; /** @@ -47,6 +51,13 @@ */ @Mojo(name = "modules") public class ModulesReport extends AbstractProjectInfoReport { + + @Inject + public ModulesReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java index 2c2c7aab..6480fa9b 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -40,6 +42,7 @@ import org.apache.maven.reporting.MavenReportException; import org.apache.maven.repository.RepositorySystem; import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -62,6 +65,12 @@ public class PluginManagementReport extends AbstractProjectInfoReport { @Parameter private List pluginManagementExcludes = null; + @Inject + public PluginManagementReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java b/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java index 83a6f98b..7bea1de6 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/PluginsReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -39,6 +41,7 @@ import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.reporting.MavenReportException; import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -50,6 +53,12 @@ */ @Mojo(name = "plugins", requiresDependencyResolution = ResolutionScope.TEST) public class PluginsReport extends AbstractProjectInfoReport { + + @Inject + public PluginsReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java b/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java index 71e60263..90dfd542 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/ScmReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -26,15 +28,17 @@ import org.apache.maven.model.Model; import org.apache.maven.model.Scm; import org.apache.maven.plugin.logging.Log; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; import org.apache.maven.scm.manager.ScmManager; import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository; import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository; import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; import org.apache.maven.scm.repository.ScmRepository; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -51,13 +55,7 @@ public class ScmReport extends AbstractProjectInfoReport { // ---------------------------------------------------------------------- /** - * Maven SCM Manager. - */ - @Component - protected ScmManager scmManager; - - /** - * The directory name to checkout right after the SCM URL. + * The directory name to check out right after the SCM URL. */ @Parameter(defaultValue = "${project.artifactId}") private String checkoutDirectoryName; @@ -96,6 +94,22 @@ public class ScmReport extends AbstractProjectInfoReport { @Parameter(defaultValue = "${project.scm.tag}") private String scmTag; + /** + * Maven SCM Manager. + */ + protected final ScmManager scmManager; + + @Inject + public ScmReport( + ArtifactResolver resolver, + RepositorySystem repositorySystem, + I18N i18n, + ProjectBuilder projectBuilder, + ScmManager scmManager) { + super(resolver, repositorySystem, i18n, projectBuilder); + this.scmManager = scmManager; + } + // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java b/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java index a2cb3974..b10624b2 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/SummaryReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.io.File; import java.io.IOException; import java.util.Locale; @@ -27,7 +29,11 @@ import org.apache.maven.model.Organization; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; +import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; @@ -40,9 +46,12 @@ */ @Mojo(name = "summary") public class SummaryReport extends AbstractProjectInfoReport { - // ---------------------------------------------------------------------- - // Mojo parameters - // ---------------------------------------------------------------------- + + @Inject + public SummaryReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } // ---------------------------------------------------------------------- // Public methods diff --git a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java index 10e0823d..f019f496 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.report.projectinfo; +import javax.inject.Inject; + import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -33,7 +35,10 @@ import org.apache.maven.model.Model; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.reporting.MavenReportException; +import org.apache.maven.repository.RepositorySystem; +import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -49,7 +54,7 @@ public class TeamReport extends AbstractProjectInfoReport { * Shows avatar images for team members that have a) properties/picUrl set b) An avatar at gravatar.com for their * email address *

- * Future versions of this plugin may choose to implement different strategies for resolving avatar images, possibly + * Future versions of this plugin may implement different strategies for resolving avatar images, possibly * using different providers. *

*Note: This property will be renamed to {@code tteam.showAvatarImages} in 3.0. @@ -58,6 +63,12 @@ public class TeamReport extends AbstractProjectInfoReport { @Parameter(property = "teamlist.showAvatarImages", defaultValue = "true") private boolean showAvatarImages; + @Inject + protected TeamReport( + ArtifactResolver resolver, RepositorySystem repositorySystem, I18N i18n, ProjectBuilder projectBuilder) { + super(resolver, repositorySystem, i18n, projectBuilder); + } + // ---------------------------------------------------------------------- // Public methods // ----------------------------------------------------------------------