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,9 +70,9 @@ internal fun configurePom(project: Project, mavenPublication: MavenPublication,
7570
7671 task.doFirst {
7772 mavenPom.run {
73+ val prj = EffectiveAsfProject .forProject(project)
7874 val gitInfo = GitInfo .memoized(project)
79- val asfProject = AsfProject .memoized(project, e.asfProjectId.get())
80- val asfProjectId = asfProject.apacheId
75+ val asfProjectId = prj.asfProject.apacheId
8176
8277 organization {
8378 name.set(" The Apache Software Foundation" )
@@ -97,47 +92,37 @@ internal fun configurePom(project: Project, mavenPublication: MavenPublication,
9792 }
9893 }
9994 mailingLists {
100- e.mailingLists.get().forEach { ml ->
101- mailingList {
102- name.set(" ${ml.capitalized()} Mailing List" )
103- subscribe.set(" $ml -subscribe@$asfProjectId .apache.org" )
104- unsubscribe.set(" $ml -unsubscribe@$asfProjectId .apache.org" )
105- post.set(" $ml @$asfProjectId .apache.org" )
106- archive.set(" https://lists.apache.org/list.html?$ml @$asfProjectId .apache.org" )
95+ prj.pubExt.mailingLists
96+ .get()
97+ .map { id -> prj.mailingList(id) }
98+ .forEach { ml ->
99+ mailingList {
100+ name.set(ml.name())
101+ subscribe.set(ml.subscribe())
102+ unsubscribe.set(ml.unsubscribe())
103+ post.set(ml.post())
104+ archive.set(ml.archive())
105+ }
107106 }
108- }
109107 }
110108
111- val githubRepoName: Provider <String > = e.githubRepositoryName.orElse(asfProjectId)
112- val codeRepo: Provider <String > =
113- e.overrideScm.orElse(
114- githubRepoName
115- .map { r -> " https://github.com/apache/$r " }
116- .orElse(asfProject.repository)
117- )
118-
119109 scm {
120- val codeRepoString: String = codeRepo .get()
110+ val codeRepoString: String = prj.codeRepoUrl() .get()
121111 connection.set(" scm:git:$codeRepoString " )
122112 developerConnection.set(" scm:git:$codeRepoString " )
123113 url.set(" $codeRepoString /tree/main" )
124114 val version = project.version.toString()
125115 if (! version.endsWith(" -SNAPSHOT" )) {
126- val tagPrefix: String =
127- e.overrideTagPrefix.orElse(" apache-${asfProject.apacheId} " ).get()
116+ val tagPrefix: String = prj.tagPrefix().get()
128117 tag.set(" $tagPrefix -$version " )
129118 }
130119 }
131- issueManagement {
132- val issuesUrl: Provider <String > =
133- codeRepo.map { r -> " $r /issues" }.orElse(asfProject.bugDatabase)
134- url.set(e.overrideIssueManagement.orElse(issuesUrl))
135- }
120+ issueManagement { url.set(prj.issueTracker()) }
136121
137- name.set(e.overrideName.orElse( " Apache ${asfProject.name} " ))
138- description.set(e.overrideDescription.orElse(asfProject. description))
139- url.set(e.overrideProjectUrl.orElse(asfProject.website ))
140- inceptionYear.set(asfProject.inceptionYear.toString())
122+ name.set(prj.fullName( ))
123+ description.set(prj. description( ))
124+ url.set(prj.projectUrl( ))
125+ inceptionYear.set(prj. asfProject.inceptionYear.toString())
141126
142127 developers { developer { url.set(" https://$asfProjectId .apache.org/community/" ) } }
143128 }
0 commit comments