public ReleaseResult execute()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractMapVersionsPhase.java [114:186]


    public ReleaseResult execute(
            ReleaseDescriptor releaseDescriptor,
            ReleaseEnvironment releaseEnvironment,
            List<MavenProject> reactorProjects)
            throws ReleaseExecutionException {
        ReleaseResult result = new ReleaseResult();

        MavenProject rootProject = ReleaseUtil.getRootProject(reactorProjects);

        if (releaseDescriptor.isAutoVersionSubmodules() && ArtifactUtils.isSnapshot(rootProject.getVersion())) {
            // get the root project
            MavenProject project = rootProject;

            String projectId = ArtifactUtils.versionlessKey(project.getGroupId(), project.getArtifactId());

            String nextVersion = resolveNextVersion(project, projectId, releaseDescriptor, releaseEnvironment);

            if (!convertToSnapshot) {
                releaseDescriptor.addReleaseVersion(projectId, nextVersion);
            } else if (releaseDescriptor.isBranchCreation() && convertToBranch) {
                releaseDescriptor.addReleaseVersion(projectId, nextVersion);
            } else {
                releaseDescriptor.addDevelopmentVersion(projectId, nextVersion);
            }

            for (MavenProject subProject : reactorProjects) {
                String subProjectId = ArtifactUtils.versionlessKey(subProject.getGroupId(), subProject.getArtifactId());

                if (convertToSnapshot) {
                    String subProjectNextVersion = releaseDescriptor.getProjectDevelopmentVersion(subProjectId);
                    String v;
                    if (subProjectNextVersion != null) {
                        v = subProjectNextVersion;
                    } else if (ArtifactUtils.isSnapshot(subProject.getVersion())) {
                        v = nextVersion;
                    } else {
                        v = subProject.getVersion();
                    }

                    if (releaseDescriptor.isBranchCreation() && convertToBranch) {
                        releaseDescriptor.addReleaseVersion(subProjectId, v);
                    } else {
                        releaseDescriptor.addDevelopmentVersion(subProjectId, v);
                    }
                } else {
                    String subProjectNextVersion = releaseDescriptor.getProjectReleaseVersion(subProjectId);
                    if (subProjectNextVersion != null) {
                        releaseDescriptor.addReleaseVersion(subProjectId, subProjectNextVersion);
                    } else {
                        releaseDescriptor.addReleaseVersion(subProjectId, nextVersion);
                    }
                }
            }
        } else {
            for (MavenProject project : reactorProjects) {
                String projectId = ArtifactUtils.versionlessKey(project.getGroupId(), project.getArtifactId());

                String nextVersion = resolveNextVersion(project, projectId, releaseDescriptor, releaseEnvironment);

                if (!convertToSnapshot) {
                    releaseDescriptor.addReleaseVersion(projectId, nextVersion);
                } else if (releaseDescriptor.isBranchCreation() && convertToBranch) {
                    releaseDescriptor.addReleaseVersion(projectId, nextVersion);
                } else {
                    releaseDescriptor.addDevelopmentVersion(projectId, nextVersion);
                }
            }
        }

        result.setResultCode(ReleaseResult.SUCCESS);

        return result;
    }