package hudson.plugins.stagingrelease; import java.util.List; import java.util.Map; import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.project.MavenProject; import org.apache.maven.scm.repository.ScmRepository; import org.apache.maven.settings.Settings; import org.apache.maven.shared.release.ReleaseExecutionException; import org.apache.maven.shared.release.ReleaseFailureException; import org.apache.maven.shared.release.ReleaseResult; import org.apache.maven.shared.release.config.ReleaseDescriptor; import org.apache.maven.shared.release.phase.AbstractRewritePomsPhase; import org.jdom.Element; import org.jdom.Namespace; /** * * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" * role-hint="set-pom-version" */ public class SetPomVersionPhase extends AbstractRewritePomsPhase { @Override public ReleaseResult execute(ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects) throws ReleaseExecutionException, ReleaseFailureException { String version = releaseDescriptor.getBaseVersion(); for (MavenProject project : (List<MavenProject>) reactorProjects) { String projectId = ArtifactUtils.versionlessKey(project .getArtifact()); ArtifactHandler artifactHandler = project.getArtifact() .getArtifactHandler(); releaseDescriptor.mapReleaseVersion(projectId, project.getVersion()); releaseDescriptor.mapDevelopmentVersion(projectId, version); } return super.execute(releaseDescriptor, settings, reactorProjects); } @Override protected void transformScm(MavenProject project, Element rootElement, Namespace namespace, ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository, ReleaseResult result, MavenProject rootProject) throws ReleaseExecutionException { } protected Map getOriginalVersionMap(ReleaseDescriptor releaseDescriptor, List reactorProjects) { return releaseDescriptor.getReleaseVersions(); } protected Map getNextVersionMap(ReleaseDescriptor releaseDescriptor) { return releaseDescriptor.getDevelopmentVersions(); } protected String getResolvedSnapshotVersion(String artifactVersionlessKey, Map resolvedSnapshotsMap) { Map versionsMap = (Map) resolvedSnapshotsMap .get(artifactVersionlessKey); if (versionsMap != null) { return (String) (versionsMap.get(ReleaseDescriptor.DEVELOPMENT_KEY)); } else { return null; } } }