protected void transformScm()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java [59:100]


    protected void transformScm(
            MavenProject project,
            Model modelTarget,
            ReleaseDescriptor releaseDescriptor,
            String projectId,
            ScmRepository scmRepository,
            ReleaseResult result) {
        // If SCM is null in original model, it is inherited, no mods needed
        if (project.getScm() != null) {
            Scm scmRoot = modelTarget.getScm();
            if (scmRoot != null) {
                ScmTranslator translator = getScmTranslators().get(scmRepository.getProvider());
                if (translator != null) {
                    Scm scm = releaseDescriptor.getOriginalScmInfo(projectId);

                    if (scm != null) {
                        scmRoot.setConnection(scm.getConnection());
                        scmRoot.setDeveloperConnection(scm.getDeveloperConnection());
                        scmRoot.setUrl(scm.getUrl());
                        String tag = translator.resolveTag(scm.getTag());
                        // reuse unresolved tag from original in case ScmTranslator does not support tags
                        if (tag == null) {
                            tag = scm.getTag();
                            // never give out default value as there is no way to distinguish it from an the
                            // explicitly set tag with the same value
                            if ("HEAD".equals(tag)) {
                                tag = null;
                            }
                        }
                        scmRoot.setTag(tag);
                    } else {
                        // cleanly remove the SCM element
                        modelTarget.setScm(null);
                    }
                } else {
                    String message = "No SCM translator found - skipping rewrite";
                    result.appendDebug(message);
                    getLogger().debug(message);
                }
            }
        }
    }