Skip to content

Commit d9f8d89

Browse files
cstamashboutemy
authored andcommitted
[MPLUGIN-511] prepare method to list releases history
1 parent bf0587c commit d9f8d89

File tree

1 file changed

+53
-0
lines changed
  • maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report

1 file changed

+53
-0
lines changed

maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@
2626
import java.util.List;
2727
import java.util.Locale;
2828

29+
import org.apache.maven.RepositoryUtils;
2930
import org.apache.maven.doxia.sink.Sink;
31+
import org.apache.maven.execution.MavenSession;
32+
import org.apache.maven.model.building.ModelBuildingRequest;
3033
import org.apache.maven.plugin.descriptor.MojoDescriptor;
3134
import org.apache.maven.plugin.descriptor.PluginDescriptor;
3235
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
@@ -36,12 +39,24 @@
3639
import org.apache.maven.plugins.annotations.Mojo;
3740
import org.apache.maven.plugins.annotations.Parameter;
3841
import org.apache.maven.plugins.plugin.descriptor.EnhancedPluginDescriptorBuilder;
42+
import org.apache.maven.project.DefaultProjectBuildingRequest;
43+
import org.apache.maven.project.MavenProject;
44+
import org.apache.maven.project.ProjectBuilder;
45+
import org.apache.maven.project.ProjectBuildingException;
46+
import org.apache.maven.project.ProjectBuildingRequest;
47+
import org.apache.maven.project.ProjectBuildingResult;
3948
import org.apache.maven.reporting.AbstractMavenReport;
4049
import org.apache.maven.reporting.MavenReportException;
4150
import org.apache.maven.rtinfo.RuntimeInformation;
4251
import org.codehaus.plexus.configuration.PlexusConfigurationException;
4352
import org.codehaus.plexus.i18n.I18N;
4453
import org.codehaus.plexus.util.xml.XmlStreamReader;
54+
import org.eclipse.aether.RepositorySystem;
55+
import org.eclipse.aether.artifact.DefaultArtifact;
56+
import org.eclipse.aether.resolution.VersionRangeRequest;
57+
import org.eclipse.aether.resolution.VersionRangeResolutionException;
58+
import org.eclipse.aether.resolution.VersionRangeResult;
59+
import org.eclipse.aether.version.Version;
4560

4661
/**
4762
* Generates the Plugin's documentation report: <code>plugin-info.html</code> plugin overview page,
@@ -123,6 +138,15 @@ public class PluginReport extends AbstractMavenReport {
123138
@Parameter(property = "maven.plugin.report.disableInternalJavadocLinkValidation")
124139
private boolean disableInternalJavadocLinkValidation;
125140

141+
@Component
142+
private MavenSession mavenSession;
143+
144+
@Component
145+
private RepositorySystem repositorySystem;
146+
147+
@Component
148+
private ProjectBuilder projectBuilder;
149+
126150
/**
127151
* {@inheritDoc}
128152
*/
@@ -232,4 +256,33 @@ private void generateMojosDocumentation(PluginDescriptor pluginDescriptor, Local
232256
}
233257
}
234258
}
259+
260+
private List<Version> discoverVersions() throws VersionRangeResolutionException {
261+
MavenProject currentProject = mavenSession.getCurrentProject();
262+
VersionRangeRequest rangeRequest = new VersionRangeRequest();
263+
rangeRequest.setArtifact(
264+
new DefaultArtifact(currentProject.getGroupId() + ":" + currentProject.getArtifactId() + ":[0,)"));
265+
rangeRequest.setRepositories(
266+
RepositoryUtils.toRepos(mavenSession.getCurrentProject().getRemoteArtifactRepositories()));
267+
VersionRangeResult rangeResult =
268+
repositorySystem.resolveVersionRange(mavenSession.getRepositorySession(), rangeRequest);
269+
return rangeResult.getVersions();
270+
}
271+
272+
private ProjectBuildingResult buildMavenProject(String version) throws ProjectBuildingException {
273+
MavenProject currentProject = mavenSession.getCurrentProject();
274+
ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest();
275+
buildRequest.setLocalRepository(mavenSession.getLocalRepository());
276+
buildRequest.setRemoteRepositories(mavenSession.getCurrentProject().getRemoteArtifactRepositories());
277+
buildRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
278+
buildRequest.setProcessPlugins(false);
279+
buildRequest.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);
280+
buildRequest.setSystemProperties(mavenSession.getSystemProperties());
281+
buildRequest.setUserProperties(mavenSession.getUserProperties());
282+
buildRequest.setRepositorySession(mavenSession.getRepositorySession());
283+
return projectBuilder.build(
284+
RepositoryUtils.toArtifact(new DefaultArtifact(
285+
currentProject.getGroupId() + ":" + currentProject.getArtifactId() + ":pom:" + version)),
286+
buildRequest);
287+
}
235288
}

0 commit comments

Comments
 (0)