Skip to content

Commit 2789038

Browse files
committed
Revert back to registerFeature('optional')
**Auto-cherry-pick to `3.1.x`** With a `components.java.addVariantsFromConfiguration(configurations.optional)` and `io.spring.dependency-management` combination the version is not published for `optional` dependencies. Does not look like there is an easy way to extract that version somehow. So, revert back to the `registerFeature('optional')` for time being. Even if it is reported as deprecated in Gradle
1 parent d8ccbd9 commit 2789038

File tree

1 file changed

+36
-56
lines changed

1 file changed

+36
-56
lines changed

build.gradle

Lines changed: 36 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -169,27 +169,12 @@ configure(javaProjects) { subproject ->
169169

170170
apply from: "${rootProject.projectDir}/gradle/publish-maven.gradle"
171171

172-
def scopeAttribute = Attribute.of('dependency.scope', String)
173-
174-
configurations {
175-
optional {
176-
attributes {
177-
attribute(scopeAttribute, 'optional')
178-
}
179-
}
180-
181-
compileClasspath.extendsFrom(optional)
182-
testCompileClasspath.extendsFrom(optional)
183-
testRuntimeClasspath.extendsFrom(optional)
184-
}
185-
186-
components.java.addVariantsFromConfiguration(configurations.optional) {
187-
mapToOptional()
188-
}
189-
190172
java {
191173
withJavadocJar()
192174
withSourcesJar()
175+
registerFeature('optional') {
176+
usingSourceSet(sourceSets.main)
177+
}
193178
}
194179

195180
compileJava {
@@ -210,10 +195,6 @@ configure(javaProjects) { subproject ->
210195

211196
// dependencies that are common across all java projects
212197
dependencies {
213-
attributesSchema {
214-
attribute(scopeAttribute)
215-
}
216-
217198
def spotbugsAnnotations = "com.github.spotbugs:spotbugs-annotations:${spotbugs.toolVersion.get()}"
218199
compileOnly spotbugsAnnotations
219200
testCompileOnly spotbugsAnnotations
@@ -261,7 +242,6 @@ configure(javaProjects) { subproject ->
261242
tasks.register('updateCopyrights') {
262243
onlyIf { !isCI }
263244
inputs.files(modifiedFiles.filter { f -> f.path.contains(subproject.name) })
264-
outputs.dir('build/classes')
265245

266246
doLast {
267247
def now = Calendar.instance.get(Calendar.YEAR) as String
@@ -374,26 +354,26 @@ project('spring-amqp') {
374354
api("org.springframework.retry:spring-retry:$springRetryVersion") {
375355
exclude group: 'org.springframework'
376356
}
377-
optional 'org.springframework:spring-messaging'
378-
optional 'org.springframework:spring-oxm'
379-
optional 'org.springframework:spring-context'
380-
optional 'com.fasterxml.jackson.core:jackson-core'
381-
optional 'com.fasterxml.jackson.core:jackson-databind'
382-
optional 'com.fasterxml.jackson.core:jackson-annotations'
383-
optional 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
384-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
385-
optional 'com.fasterxml.jackson.module:jackson-module-parameter-names'
386-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
387-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-joda'
388-
optional('com.fasterxml.jackson.module:jackson-module-kotlin') {
357+
optionalApi 'org.springframework:spring-messaging'
358+
optionalApi 'org.springframework:spring-oxm'
359+
optionalApi 'org.springframework:spring-context'
360+
optionalApi 'com.fasterxml.jackson.core:jackson-core'
361+
optionalApi 'com.fasterxml.jackson.core:jackson-databind'
362+
optionalApi 'com.fasterxml.jackson.core:jackson-annotations'
363+
optionalApi 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
364+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
365+
optionalApi 'com.fasterxml.jackson.module:jackson-module-parameter-names'
366+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
367+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-joda'
368+
optionalApi('com.fasterxml.jackson.module:jackson-module-kotlin') {
389369
exclude group: 'org.jetbrains.kotlin'
390370
}
391371
// Spring Data projection message binding support
392-
optional('org.springframework.data:spring-data-commons') {
372+
optionalApi('org.springframework.data:spring-data-commons') {
393373
exclude group: 'org.springframework'
394374
exclude group: 'io.micrometer'
395375
}
396-
optional "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
376+
optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
397377

398378
testImplementation "org.assertj:assertj-core:$assertjVersion"
399379
}
@@ -433,22 +413,22 @@ project('spring-rabbit') {
433413
api 'org.springframework:spring-messaging'
434414
api 'org.springframework:spring-tx'
435415
api 'io.micrometer:micrometer-observation'
436-
optional 'org.springframework:spring-aop'
437-
optional 'org.springframework:spring-webflux'
438-
optional "org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion"
439-
optional 'io.projectreactor:reactor-core'
440-
optional 'io.projectreactor.netty:reactor-netty-http'
441-
optional "ch.qos.logback:logback-classic:$logbackVersion"
442-
optional 'org.apache.logging.log4j:log4j-core'
443-
optional 'io.micrometer:micrometer-core'
444-
optional 'io.micrometer:micrometer-tracing'
416+
optionalApi 'org.springframework:spring-aop'
417+
optionalApi 'org.springframework:spring-webflux'
418+
optionalApi "org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion"
419+
optionalApi 'io.projectreactor:reactor-core'
420+
optionalApi 'io.projectreactor.netty:reactor-netty-http'
421+
optionalApi "ch.qos.logback:logback-classic:$logbackVersion"
422+
optionalApi 'org.apache.logging.log4j:log4j-core'
423+
optionalApi 'io.micrometer:micrometer-core'
424+
optionalApi 'io.micrometer:micrometer-tracing'
445425
// Spring Data projection message binding support
446-
optional("org.springframework.data:spring-data-commons") {
426+
optionalApi("org.springframework.data:spring-data-commons") {
447427
exclude group: 'org.springframework'
448428
}
449-
optional "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
450-
optional "org.apache.commons:commons-pool2:$commonsPoolVersion"
451-
optional "org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion"
429+
optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
430+
optionalApi "org.apache.commons:commons-pool2:$commonsPoolVersion"
431+
optionalApi "org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion"
452432

453433
testApi project(':spring-rabbit-junit')
454434
testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertkVersion")
@@ -482,7 +462,7 @@ project('spring-rabbit-stream') {
482462
dependencies {
483463
api project(':spring-rabbit')
484464
api "com.rabbitmq:stream-client:$rabbitmqStreamVersion"
485-
optional 'io.micrometer:micrometer-core'
465+
optionalApi 'io.micrometer:micrometer-core'
486466

487467
testApi project(':spring-rabbit-junit')
488468
testRuntimeOnly 'com.fasterxml.jackson.core:jackson-core'
@@ -514,13 +494,13 @@ project('spring-rabbit-junit') {
514494
api 'org.springframework:spring-web'
515495
api 'org.junit.jupiter:junit-jupiter-api'
516496
api "org.assertj:assertj-core:$assertjVersion"
517-
optional("junit:junit:$junit4Version") {
497+
optionalApi("junit:junit:$junit4Version") {
518498
exclude group: 'org.hamcrest', module: 'hamcrest-core'
519499
}
520-
optional "org.testcontainers:rabbitmq"
521-
optional "org.testcontainers:junit-jupiter"
522-
optional "ch.qos.logback:logback-classic:$logbackVersion"
523-
optional 'org.apache.logging.log4j:log4j-core'
500+
optionalApi "org.testcontainers:rabbitmq"
501+
optionalApi "org.testcontainers:junit-jupiter"
502+
optionalApi "ch.qos.logback:logback-classic:$logbackVersion"
503+
optionalApi 'org.apache.logging.log4j:log4j-core'
524504
compileOnly 'org.apiguardian:apiguardian-api:1.0.0'
525505
}
526506
}

0 commit comments

Comments
 (0)