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 <ta...@cservenak.net>
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: <code>plugin-info.html</code> 
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<Version> 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());
+        return projectBuilder.build(
+                RepositoryUtils.toArtifact(new DefaultArtifact(
+                        currentProject.getGroupId() + ":" + 
currentProject.getArtifactId() + ":pom:" + version)),
+                buildRequest);
+    }
 }

Reply via email to