From 0ae3cef8696ec946459fbac4a7d5f2436d7f166f 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. --- 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 c4d45c628d1..f9c18eb03c4 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -122,24 +122,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 40a109092bfca38bf5c2f277b87ee17eb41bfd35 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. --- 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 f9c18eb03c4..760c7fe8761 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -117,11 +117,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/') @@ -129,14 +124,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 d39f25f151bfa4d6aee8f6d1ef2252d0aa092c67 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. --- 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 760c7fe8761..cd0a11b1a55 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -139,6 +139,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.7"