public void setVersion()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModel.java [170:207]


    public void setVersion(String version) {
        Element versionElement = project.getChild("version", project.getNamespace());

        String parentVersion;
        Element parent = getParentElement();
        if (parent != null) {
            parentVersion = parent.getChildTextTrim("version", project.getNamespace());
        } else {
            parentVersion = null;
        }

        if (versionElement == null) {
            // never add version when parent references CI friendly property
            if (!(parentVersion != null && AbstractRewritePomsPhase.isCiFriendlyVersion(parentVersion))
                    && !version.equals(parentVersion)) {
                // we will add this after artifactId, since it was missing but different from the inherited version
                Element artifactIdElement = project.getChild("artifactId", project.getNamespace());
                int index = project.indexOf(artifactIdElement);

                versionElement = new Element("version", project.getNamespace());
                versionElement.setText(version);
                project.addContent(index + 1, new Text("\n  "));
                project.addContent(index + 2, versionElement);
            }
        } else {
            if (AbstractRewritePomsPhase.isCiFriendlyVersion(versionElement.getTextNormalize())) {
                // try to rewrite property if CI friendly expression is used
                String ciFriendlyPropertyName =
                        AbstractRewritePomsPhase.extractPropertyFromExpression(versionElement.getTextNormalize());
                Properties properties = getProperties();
                if (properties != null) {
                    properties.computeIfPresent(ciFriendlyPropertyName, (k, v) -> version);
                }
            } else {
                JDomUtils.rewriteValue(versionElement, version);
            }
        }
    }