1919
2020package publishing
2121
22- import asf.AsfProject
2322import groovy.util.Node
2423import org.gradle.api.Project
2524import org.gradle.api.Task
2625import org.gradle.api.artifacts.component.ModuleComponentSelector
27- import org.gradle.api.provider.Provider
2826import org.gradle.api.publish.maven.MavenPublication
29- import org.gradle.internal.extensions.stdlib.capitalized
3027
3128/* *
3229 * Configures the content of the generated `pom.xml` files.
@@ -47,8 +44,6 @@ import org.gradle.internal.extensions.stdlib.capitalized
4744 */
4845internal fun configurePom (project : Project , mavenPublication : MavenPublication , task : Task ) =
4946 mavenPublication.run {
50- val e = project.extensions.getByType(PublishingHelperExtension ::class .java)
51-
5247 pom {
5348 if (project != project.rootProject) {
5449 // Add the license to every pom to make it easier for downstream projects to retrieve the
@@ -75,8 +70,8 @@ internal fun configurePom(project: Project, mavenPublication: MavenPublication,
7570
7671 task.doFirst {
7772 mavenPom.run {
78- val asfProject = AsfProject .memoized (project, e.asfProjectId.get() )
79- val asfProjectId = asfProject.apacheId
73+ val prj = EffectiveAsfProject .forProject (project)
74+ val asfProjectId = prj. asfProject.apacheId
8075
8176 organization {
8277 name.set(" The Apache Software Foundation" )
@@ -85,51 +80,41 @@ internal fun configurePom(project: Project, mavenPublication: MavenPublication,
8580 licenses {
8681 license {
8782 name.set(" Apache-2.0" ) // SPDX identifier
88- url.set(asfProject.licenseUrl)
83+ url.set(prj. asfProject.licenseUrl)
8984 }
9085 }
9186 mailingLists {
92- e.mailingLists.get().forEach { ml ->
93- mailingList {
94- name.set(" ${ml.capitalized()} Mailing List" )
95- subscribe.set(" $ml -subscribe@$asfProjectId .apache.org" )
96- unsubscribe.set(" $ml -unsubscribe@$asfProjectId .apache.org" )
97- post.set(" $ml @$asfProjectId .apache.org" )
98- archive.set(" https://lists.apache.org/list.html?$ml @$asfProjectId .apache.org" )
87+ prj.publishingHelperExtension.mailingLists
88+ .get()
89+ .map { id -> prj.mailingList(id) }
90+ .forEach { ml ->
91+ mailingList {
92+ name.set(ml.name())
93+ subscribe.set(ml.subscribe())
94+ unsubscribe.set(ml.unsubscribe())
95+ post.set(ml.post())
96+ archive.set(ml.archive())
97+ }
9998 }
100- }
10199 }
102100
103- val githubRepoName: Provider <String > = e.githubRepositoryName.orElse(asfProjectId)
104- val codeRepo: Provider <String > =
105- e.overrideScm.orElse(
106- githubRepoName
107- .map { r -> " https://github.com/apache/$r " }
108- .orElse(asfProject.repository)
109- )
110-
111101 scm {
112- val codeRepoString: String = codeRepo .get()
102+ val codeRepoString: String = prj.codeRepoUrl() .get()
113103 connection.set(" scm:git:$codeRepoString " )
114104 developerConnection.set(" scm:git:$codeRepoString " )
115105 url.set(" $codeRepoString /tree/main" )
116106 val version = project.version.toString()
117107 if (! version.endsWith(" -SNAPSHOT" )) {
118- val tagPrefix: String =
119- e.overrideTagPrefix.orElse(" apache-${asfProject.apacheId} " ).get()
108+ val tagPrefix: String = prj.tagPrefix().get()
120109 tag.set(" $tagPrefix -$version " )
121110 }
122111 }
123- issueManagement {
124- val issuesUrl: Provider <String > =
125- codeRepo.map { r -> " $r /issues" }.orElse(asfProject.bugDatabase)
126- url.set(e.overrideIssueManagement.orElse(issuesUrl))
127- }
112+ issueManagement { url.set(prj.issueTracker()) }
128113
129- name.set(e.overrideName.orElse( " Apache ${asfProject.name} " ))
130- description.set(e.overrideDescription.orElse(asfProject. description))
131- url.set(e.overrideProjectUrl.orElse(asfProject.website ))
132- inceptionYear.set(asfProject.inceptionYear.toString())
114+ name.set(prj.fullName( ))
115+ description.set(prj. description( ))
116+ url.set(prj.projectUrl( ))
117+ inceptionYear.set(prj. asfProject.inceptionYear.toString())
133118
134119 developers { developer { url.set(" https://$asfProjectId .apache.org/community/" ) } }
135120 }
0 commit comments