(maven-plugin-tools) 01/02: [MPLUGIN-511] prepare method to list releases history

2024-03-16 Thread hboutemy
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

2024-03-05 Thread hboutemy
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());