private void transformDocument()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java [285:436]


    private void transformDocument(
            MavenProject project,
            Model modelTarget,
            ReleaseDescriptor releaseDescriptor,
            ScmRepository scmRepository,
            ReleaseResult result,
            boolean simulate)
            throws ReleaseExecutionException, ReleaseFailureException {
        Model model = project.getModel();

        Properties properties = modelTarget.getProperties();

        String parentVersion = rewriteParent(project, modelTarget, result, releaseDescriptor, simulate);

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

        rewriteVersion(modelTarget, releaseDescriptor, projectId, project);

        Build buildTarget = modelTarget.getBuild();
        if (buildTarget != null) {
            // profile.build.extensions doesn't exist, so only rewrite project.build.extensions
            rewriteArtifactVersions(
                    toMavenCoordinates(buildTarget.getExtensions()),
                    model,
                    properties,
                    result,
                    releaseDescriptor,
                    simulate);

            rewriteArtifactVersions(
                    toMavenCoordinates(buildTarget.getPlugins()),
                    model,
                    properties,
                    result,
                    releaseDescriptor,
                    simulate);

            for (Plugin plugin : buildTarget.getPlugins()) {
                rewriteArtifactVersions(
                        toMavenCoordinates(plugin.getDependencies()),
                        model,
                        properties,
                        result,
                        releaseDescriptor,
                        simulate);
            }

            if (buildTarget.getPluginManagement() != null) {
                rewriteArtifactVersions(
                        toMavenCoordinates(buildTarget.getPluginManagement().getPlugins()),
                        model,
                        properties,
                        result,
                        releaseDescriptor,
                        simulate);

                for (Plugin plugin : buildTarget.getPluginManagement().getPlugins()) {
                    rewriteArtifactVersions(
                            toMavenCoordinates(plugin.getDependencies()),
                            model,
                            properties,
                            result,
                            releaseDescriptor,
                            simulate);
                }
            }
        }

        for (Profile profile : modelTarget.getProfiles()) {
            BuildBase profileBuild = profile.getBuild();
            if (profileBuild != null) {
                rewriteArtifactVersions(
                        toMavenCoordinates(profileBuild.getPlugins()),
                        model,
                        properties,
                        result,
                        releaseDescriptor,
                        simulate);

                for (Plugin plugin : profileBuild.getPlugins()) {
                    rewriteArtifactVersions(
                            toMavenCoordinates(plugin.getDependencies()),
                            model,
                            properties,
                            result,
                            releaseDescriptor,
                            simulate);
                }

                if (profileBuild.getPluginManagement() != null) {
                    rewriteArtifactVersions(
                            toMavenCoordinates(
                                    profileBuild.getPluginManagement().getPlugins()),
                            model,
                            properties,
                            result,
                            releaseDescriptor,
                            simulate);

                    for (Plugin plugin : profileBuild.getPluginManagement().getPlugins()) {
                        rewriteArtifactVersions(
                                toMavenCoordinates(plugin.getDependencies()),
                                model,
                                properties,
                                result,
                                releaseDescriptor,
                                simulate);
                    }
                }
            }
        }

        List<ModelBase> modelBases = new ArrayList<>();
        modelBases.add(modelTarget);
        modelBases.addAll(modelTarget.getProfiles());

        for (ModelBase modelBase : modelBases) {
            rewriteArtifactVersions(
                    toMavenCoordinates(modelBase.getDependencies()),
                    model,
                    properties,
                    result,
                    releaseDescriptor,
                    simulate);

            if (modelBase.getDependencyManagement() != null) {
                rewriteArtifactVersions(
                        toMavenCoordinates(modelBase.getDependencyManagement().getDependencies()),
                        model,
                        properties,
                        result,
                        releaseDescriptor,
                        simulate);
            }

            if (modelBase.getReporting() != null) {
                rewriteArtifactVersions(
                        toMavenCoordinates(modelBase.getReporting().getPlugins()),
                        model,
                        properties,
                        result,
                        releaseDescriptor,
                        simulate);
            }
        }

        transformScm(project, modelTarget, releaseDescriptor, projectId, scmRepository, result);

        if (properties != null) {
            rewriteBuildOutputTimestampProperty(properties, result);
        }
    }