From 718c470910fd070f69556148337b05065347b7c6 Mon Sep 17 00:00:00 2001 From: Eric Haag Date: Mon, 18 Sep 2023 14:07:24 -0500 Subject: [PATCH 1/3] Prevent creating duplicate .xsd entries This change removes .xsd entries that would appear in the top level of the assembled artifacts. This occurred because the output of the rncToXsd task does not consider the path beneath the resources directory. To fix this, the processResources task is directly configured with a copy spec so the required path can be set. Issue gh-13845 --- config/spring-security-config.gradle | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/config/spring-security-config.gradle b/config/spring-security-config.gradle index 255c9f0cfe..37e77602a3 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -116,24 +116,21 @@ def versionlessXsd = project.tasks.create("versionlessXsd", CreateVersionlessXsd versionlessXsdFile = project.layout.buildDirectory.file("versionlessXsd/spring-security.xsd") } -processResources { - from(versionlessXsd) { - into 'org/springframework/security/config/' - } -} - -tasks.named('rncToXsd', RncToXsd).configure { +def rncToXsd = tasks.named('rncToXsd', RncToXsd) +rncToXsd.configure { rncDir = file('src/main/resources/org/springframework/security/config/') xsdDir = rncDir xslFile = new File(rncDir, 'spring-security.xsl') } -sourceSets { - main { - resources { - srcDir(tasks.named('rncToXsd')) - } - } +tasks.named('processResources', ProcessResources).configure { + from(versionlessXsd) { + into 'org/springframework/security/config/' + } + from(rncToXsd) { + duplicatesStrategy DuplicatesStrategy.EXCLUDE + into 'org/springframework/security/config/' + } } tasks.withType(KotlinCompile).configureEach { From e63d7fd9e96572048fdae1b9513802b25ae56660 Mon Sep 17 00:00:00 2001 From: Eric Haag Date: Mon, 18 Sep 2023 14:17:46 -0500 Subject: [PATCH 2/3] Add dependency between rncToXsd and versionlessXsd Since processResources is configured directly instead of via the source set container, an explicit dependency task between rncToXsd and versionlessXsd must be defined. Issue gh-13845 --- config/spring-security-config.gradle | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/spring-security-config.gradle b/config/spring-security-config.gradle index 37e77602a3..16f71d5a68 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -111,11 +111,6 @@ dependencies { testRuntimeOnly 'org.hsqldb:hsqldb' } -def versionlessXsd = project.tasks.create("versionlessXsd", CreateVersionlessXsdTask) { - inputFiles.from(project.sourceSets.main.resources) - versionlessXsdFile = project.layout.buildDirectory.file("versionlessXsd/spring-security.xsd") -} - def rncToXsd = tasks.named('rncToXsd', RncToXsd) rncToXsd.configure { rncDir = file('src/main/resources/org/springframework/security/config/') @@ -123,14 +118,19 @@ rncToXsd.configure { xslFile = new File(rncDir, 'spring-security.xsl') } +def versionlessXsd = tasks.register("versionlessXsd", CreateVersionlessXsdTask) { + inputFiles.from(rncToXsd.map { task -> project.fileTree(task.xsdDir) }) + versionlessXsdFile = project.layout.buildDirectory.file("versionlessXsd/spring-security.xsd") +} + tasks.named('processResources', ProcessResources).configure { - from(versionlessXsd) { - into 'org/springframework/security/config/' - } - from(rncToXsd) { - duplicatesStrategy DuplicatesStrategy.EXCLUDE - into 'org/springframework/security/config/' - } + from(versionlessXsd) { + into 'org/springframework/security/config/' + } + from(rncToXsd) { + duplicatesStrategy DuplicatesStrategy.EXCLUDE + into 'org/springframework/security/config/' + } } tasks.withType(KotlinCompile).configureEach { From ac04c2e675be55a1c257529d0cc8fddda76b90be Mon Sep 17 00:00:00 2001 From: Eric Haag Date: Mon, 18 Sep 2023 14:23:34 -0500 Subject: [PATCH 3/3] Add dependency between rncToXsd and sourcesJar Since processResources is configured directly instead of via the source set container, an explicit dependency task between rncToXsd and sourcesJar must be defined. Issue gh-13845 --- config/spring-security-config.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/spring-security-config.gradle b/config/spring-security-config.gradle index 16f71d5a68..bdffc0a01f 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -133,6 +133,13 @@ tasks.named('processResources', ProcessResources).configure { } } +tasks.named('sourcesJar', Jar).configure { + from(rncToXsd) { + duplicatesStrategy DuplicatesStrategy.EXCLUDE + into 'org/springframework/security/config/' + } +} + tasks.withType(KotlinCompile).configureEach { kotlinOptions { languageVersion = "1.3"