in ci/build-helpers/publishing/src/main/kotlin/org/jetbrains/compose/internal/publishing/utils/PomDocument.kt [66:122]
fun fillMissingTags(
projectUrl: String,
projectInceptionYear: String,
licenseName: String,
licenseUrl: String,
licenseDistribution: String,
scmConnection: String,
scmDeveloperConnection: String,
scmUrl: String,
developerName: String,
developerOrganization: String,
developerOrganizationUrl: String,
): Unit = with (doc) {
val originalNodes = project.children().asMap()
val nameText = originalNodes["name"]?.textContent
?: originalNodes["artifactId"]!!.textContent
.split("-")
.joinToString(" ") { it.capitalize() }
val name = newNode("name", nameText)
val description = newNode("description", (originalNodes["description"] ?: name).textContent)
val url = newNode("url", projectUrl)
val inceptionYear = newNode("inceptionYear", projectInceptionYear)
val licences =
newNode("licenses").withChildren(
newNode("license").withChildren(
newNode("name", licenseName),
newNode("url", licenseUrl),
newNode("distribution", licenseDistribution)
)
)
val scm =
newNode("scm").withChildren(
newNode("connection", scmConnection),
newNode("developerConnection", scmDeveloperConnection),
newNode("url", scmUrl)
)
val developers =
newNode("developers").withChildren(
newNode("developer").withChildren(
newNode("name", developerName),
newNode("organization", developerOrganization),
newNode("organizationUrl", developerOrganizationUrl),
)
)
val dependencies = originalNodes["dependencies"]
val nodesToInsert = listOf(
name, description, url, inceptionYear, licences, scm, developers, dependencies
).filterNotNull()
for (nodeToInsert in nodesToInsert) {
val originalNode = originalNodes[nodeToInsert.nodeName]
if (originalNode != null) {
project.removeChild(originalNode)
}
project.appendChild(nodeToInsert)
}
}