(maven-plugin-tools) 01/02: [MPLUGIN-511] prepare method to list releases history
This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git commit d9f8d8941d6996ad39b6f4c427f8e126c1176154 Author: Tamas Cservenak AuthorDate: Mon Mar 4 17:40:59 2024 +0100 [MPLUGIN-511] prepare method to list releases history --- .../maven/plugin/plugin/report/PluginReport.java | 53 ++ 1 file changed, 53 insertions(+) diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java index 954363c5..3c47a3cf 100644 --- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java +++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java @@ -26,7 +26,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; +import org.apache.maven.RepositoryUtils; import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.building.ModelBuildingRequest; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; @@ -36,12 +39,24 @@ import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.plugin.descriptor.EnhancedPluginDescriptorBuilder; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; +import org.apache.maven.project.ProjectBuildingException; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingResult; import org.apache.maven.reporting.AbstractMavenReport; import org.apache.maven.reporting.MavenReportException; import org.apache.maven.rtinfo.RuntimeInformation; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.xml.XmlStreamReader; +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.resolution.VersionRangeRequest; +import org.eclipse.aether.resolution.VersionRangeResolutionException; +import org.eclipse.aether.resolution.VersionRangeResult; +import org.eclipse.aether.version.Version; /** * Generates the Plugin's documentation report: plugin-info.html plugin overview page, @@ -123,6 +138,15 @@ public class PluginReport extends AbstractMavenReport { @Parameter(property = "maven.plugin.report.disableInternalJavadocLinkValidation") private boolean disableInternalJavadocLinkValidation; +@Component +private MavenSession mavenSession; + +@Component +private RepositorySystem repositorySystem; + +@Component +private ProjectBuilder projectBuilder; + /** * {@inheritDoc} */ @@ -232,4 +256,33 @@ public class PluginReport extends AbstractMavenReport { } } } + +private List discoverVersions() throws VersionRangeResolutionException { +MavenProject currentProject = mavenSession.getCurrentProject(); +VersionRangeRequest rangeRequest = new VersionRangeRequest(); +rangeRequest.setArtifact( +new DefaultArtifact(currentProject.getGroupId() + ":" + currentProject.getArtifactId() + ":[0,)")); +rangeRequest.setRepositories( + RepositoryUtils.toRepos(mavenSession.getCurrentProject().getRemoteArtifactRepositories())); +VersionRangeResult rangeResult = + repositorySystem.resolveVersionRange(mavenSession.getRepositorySession(), rangeRequest); +return rangeResult.getVersions(); +} + +private ProjectBuildingResult buildMavenProject(String version) throws ProjectBuildingException { +MavenProject currentProject = mavenSession.getCurrentProject(); +ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest(); +buildRequest.setLocalRepository(mavenSession.getLocalRepository()); + buildRequest.setRemoteRepositories(mavenSession.getCurrentProject().getRemoteArtifactRepositories()); + buildRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); +buildRequest.setProcessPlugins(false); + buildRequest.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT); +buildRequest.setSystemProperties(mavenSession.getSystemProperties()); +buildRequest.setUserProperties(mavenSession.getUserProperties()); +buildRequest.setRepositorySession(mavenSession.getRepositorySession()); +
(maven-plugin-tools) 01/02: [MPLUGIN-511] prepare method to list releases history
This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to branch MPLUGIN-511-2 in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git commit ab33aa576172cbc8a30fb2360f4a4a0901132c2b Author: Tamas Cservenak AuthorDate: Mon Mar 4 17:40:59 2024 +0100 [MPLUGIN-511] prepare method to list releases history --- .../maven/plugin/plugin/report/PluginReport.java | 53 ++ 1 file changed, 53 insertions(+) diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java index 954363c5..3c47a3cf 100644 --- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java +++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java @@ -26,7 +26,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; +import org.apache.maven.RepositoryUtils; import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.building.ModelBuildingRequest; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; @@ -36,12 +39,24 @@ import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.plugin.descriptor.EnhancedPluginDescriptorBuilder; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuilder; +import org.apache.maven.project.ProjectBuildingException; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingResult; import org.apache.maven.reporting.AbstractMavenReport; import org.apache.maven.reporting.MavenReportException; import org.apache.maven.rtinfo.RuntimeInformation; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.xml.XmlStreamReader; +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.resolution.VersionRangeRequest; +import org.eclipse.aether.resolution.VersionRangeResolutionException; +import org.eclipse.aether.resolution.VersionRangeResult; +import org.eclipse.aether.version.Version; /** * Generates the Plugin's documentation report: plugin-info.html plugin overview page, @@ -123,6 +138,15 @@ public class PluginReport extends AbstractMavenReport { @Parameter(property = "maven.plugin.report.disableInternalJavadocLinkValidation") private boolean disableInternalJavadocLinkValidation; +@Component +private MavenSession mavenSession; + +@Component +private RepositorySystem repositorySystem; + +@Component +private ProjectBuilder projectBuilder; + /** * {@inheritDoc} */ @@ -232,4 +256,33 @@ public class PluginReport extends AbstractMavenReport { } } } + +private List discoverVersions() throws VersionRangeResolutionException { +MavenProject currentProject = mavenSession.getCurrentProject(); +VersionRangeRequest rangeRequest = new VersionRangeRequest(); +rangeRequest.setArtifact( +new DefaultArtifact(currentProject.getGroupId() + ":" + currentProject.getArtifactId() + ":[0,)")); +rangeRequest.setRepositories( + RepositoryUtils.toRepos(mavenSession.getCurrentProject().getRemoteArtifactRepositories())); +VersionRangeResult rangeResult = + repositorySystem.resolveVersionRange(mavenSession.getRepositorySession(), rangeRequest); +return rangeResult.getVersions(); +} + +private ProjectBuildingResult buildMavenProject(String version) throws ProjectBuildingException { +MavenProject currentProject = mavenSession.getCurrentProject(); +ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest(); +buildRequest.setLocalRepository(mavenSession.getLocalRepository()); + buildRequest.setRemoteRepositories(mavenSession.getCurrentProject().getRemoteArtifactRepositories()); + buildRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); +buildRequest.setProcessPlugins(false); + buildRequest.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT); +buildRequest.setSystemProperties(mavenSession.getSystemProperties()); +buildRequest.setUserProperties(mavenSession.getUserProperties()); +buildRequest.setRepositorySession(mavenSession.getRepositorySession());