From 3c572f95d9b78484b701aebb3fbead03ea911700 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 26 May 2025 16:59:53 +0200 Subject: [PATCH 1/4] Update Gradle wrapper to 9.0.0-milestone-9 --- build-tools-internal/gradle/wrapper/gradle-wrapper.properties | 4 ++-- build-tools-internal/src/main/resources/minimumGradleVersion | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- plugins/examples/gradle/wrapper/gradle-wrapper.properties | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties index 3d25d539e993f..384c5f924dbf3 100644 --- a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties +++ b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=d7042b3c11565c192041fc8c4703f541b888286404b4f267138c1d094d8ecdca -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip +distributionSha256Sum=50a9af3d8ebe27e5126ec7648141536472c50ee0ce9faa9c7239ec1d25ecabe1 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-milestone-9-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/build-tools-internal/src/main/resources/minimumGradleVersion b/build-tools-internal/src/main/resources/minimumGradleVersion index 3e2c3fbefcb12..e43cfc71294d2 100644 --- a/build-tools-internal/src/main/resources/minimumGradleVersion +++ b/build-tools-internal/src/main/resources/minimumGradleVersion @@ -1 +1 @@ -8.14.1 \ No newline at end of file +9.0.0-milestone-9 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3d25d539e993f..384c5f924dbf3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=d7042b3c11565c192041fc8c4703f541b888286404b4f267138c1d094d8ecdca -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip +distributionSha256Sum=50a9af3d8ebe27e5126ec7648141536472c50ee0ce9faa9c7239ec1d25ecabe1 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-milestone-9-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/plugins/examples/gradle/wrapper/gradle-wrapper.properties b/plugins/examples/gradle/wrapper/gradle-wrapper.properties index 3d25d539e993f..384c5f924dbf3 100644 --- a/plugins/examples/gradle/wrapper/gradle-wrapper.properties +++ b/plugins/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=d7042b3c11565c192041fc8c4703f541b888286404b4f267138c1d094d8ecdca -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip +distributionSha256Sum=50a9af3d8ebe27e5126ec7648141536472c50ee0ce9faa9c7239ec1d25ecabe1 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-milestone-9-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From e81c1407ab38d804d83e2953956626efb85de1f1 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Wed, 28 May 2025 11:12:22 +0200 Subject: [PATCH 2/4] WIP --- .../gradle/internal/AntTask.groovy | 2 +- .../gradle/internal/test/AntFixture.groovy | 3 +- .../gradle/internal/idea/IdeaXmlUtil.java | 2 +- .../shadow/XmlClassRelocationTransformer.java | 23 ++-- build.gradle | 2 +- gradle/build.versions.toml | 4 +- gradle/verification-metadata.xml | 120 ++++++++++++++++++ 7 files changed, 136 insertions(+), 20 deletions(-) diff --git a/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/AntTask.groovy b/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/AntTask.groovy index 01a3bdaee2337..c003650d4c0f5 100644 --- a/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/AntTask.groovy +++ b/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/AntTask.groovy @@ -18,7 +18,7 @@ import org.gradle.api.GradleException import org.gradle.api.file.FileSystemOperations import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction - +import groovy.ant.AntBuilder import javax.inject.Inject import java.nio.charset.Charset diff --git a/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/test/AntFixture.groovy b/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/test/AntFixture.groovy index 88a68f1194858..b29364be4fbb0 100644 --- a/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/test/AntFixture.groovy +++ b/build-tools-internal/src/main/groovy/org/elasticsearch/gradle/internal/test/AntFixture.groovy @@ -10,7 +10,7 @@ package org.elasticsearch.gradle.internal.test import org.elasticsearch.gradle.OS - +import groovy.ant.AntBuilder import org.elasticsearch.gradle.internal.AntFixtureStop import org.elasticsearch.gradle.internal.AntTask import org.elasticsearch.gradle.testclusters.TestClusterInfo @@ -26,7 +26,6 @@ import org.gradle.api.provider.ValueSourceParameters import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskProvider - import javax.inject.Inject /** diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/idea/IdeaXmlUtil.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/idea/IdeaXmlUtil.java index b7cc2862a0af1..7fbc9c341603b 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/idea/IdeaXmlUtil.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/idea/IdeaXmlUtil.java @@ -10,8 +10,8 @@ package org.elasticsearch.gradle.internal.idea; import groovy.util.Node; -import groovy.util.XmlParser; import groovy.xml.XmlNodePrinter; +import groovy.xml.XmlParser; import org.gradle.api.Action; import org.xml.sax.SAXException; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java index 57afa7014240b..b5e922b725cab 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java @@ -9,11 +9,12 @@ package org.elasticsearch.gradle.internal.shadow; -import com.github.jengelman.gradle.plugins.shadow.ShadowStats; +//import com.github.jengelman.gradle.plugins.shadow.ShadowStats; +import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext; import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext; import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator; -import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer; import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext; +import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer; import org.apache.commons.io.IOUtils; import org.apache.tools.zip.ZipEntry; @@ -27,6 +28,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; +import java.util.Set; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -35,7 +37,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -public class XmlClassRelocationTransformer implements Transformer { +public class XmlClassRelocationTransformer implements ResourceTransformer { boolean hasTransformedResource = false; @@ -55,7 +57,7 @@ public boolean canTransformResource(FileTreeElement element) { @Override public void transform(TransformerContext context) { try { - BufferedInputStream bis = new BufferedInputStream(context.getIs()); + BufferedInputStream bis = new BufferedInputStream(context.getInputStream()); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); doc = dBuilder.parse(bis); @@ -66,17 +68,17 @@ public void transform(TransformerContext context) { this.doc = null; } } catch (Exception e) { - throw new RuntimeException("Error parsing xml file in " + context.getIs(), e); + throw new RuntimeException("Error parsing xml file in " + context.getInputStream(), e); } } private static String getRelocatedClass(String className, TransformerContext context) { - List relocators = context.getRelocators(); - ShadowStats stats = context.getStats(); + Set relocators = context.getRelocators(); +// ShadowStats stats = context.getStats(); if (className != null && className.length() > 0 && relocators != null) { for (Relocator relocator : relocators) { if (relocator.canRelocateClass(className)) { - RelocateClassContext relocateClassContext = new RelocateClassContext(className, stats); + RelocateClassContext relocateClassContext = new RelocateClassContext(className); return relocator.relocateClass(relocateClassContext); } } @@ -135,9 +137,4 @@ public void modifyOutputStream(ZipOutputStream os, boolean preserveFileTimestamp doc = null; } } - - @Override - public String getName() { - return getClass().getSimpleName(); - } } diff --git a/build.gradle b/build.gradle index d5fc7ef8ecfb1..7ea331cd6e98d 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ import org.elasticsearch.gradle.util.GradleUtils import org.gradle.plugins.ide.eclipse.model.AccessRule import java.nio.file.Files - +import groovy.xml.XmlParser import static java.nio.file.StandardCopyOption.REPLACE_EXISTING import static org.elasticsearch.gradle.util.GradleUtils.maybeConfigure diff --git a/gradle/build.versions.toml b/gradle/build.versions.toml index ae5dac9a29343..623d81d5396d3 100644 --- a/gradle/build.versions.toml +++ b/gradle/build.versions.toml @@ -2,7 +2,7 @@ asm = "9.7.1" jackson = "2.15.0" junit5 = "5.12.1" -spock = "2.1-groovy-3.0" +spock = "2.3-groovy-4.0" [libraries] ant = "org.apache.ant:ant:1.10.12" @@ -38,7 +38,7 @@ maven-model = "org.apache.maven:maven-model:3.6.2" mockito-core = "org.mockito:mockito-core:1.9.5" nebula-info = "com.netflix.nebula:gradle-info-plugin:11.3.3" reflections = "org.reflections:reflections:0.9.12" -shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:8.3.5" +shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:9.0.0-beta12" snakeyaml = { group = "org.yaml", name = "snakeyaml", version = { strictly = "2.0" } } spock-core = { group = "org.spockframework", name="spock-core", version.ref="spock" } spock-junit4 = { group = "org.spockframework", name="spock-junit4", version.ref="spock" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 566a640e9bd55..960cb0b9327c5 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -421,6 +421,11 @@ + + + + + @@ -878,6 +883,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1318,6 +1358,11 @@ + + + + + @@ -2385,6 +2430,11 @@ + + + + + @@ -2918,6 +2968,16 @@ + + + + + + + + + + @@ -2943,6 +3003,16 @@ + + + + + + + + + + @@ -3078,6 +3148,11 @@ + + + + + @@ -3088,6 +3163,11 @@ + + + + + @@ -3153,6 +3233,11 @@ + + + + + @@ -3571,6 +3656,11 @@ + + + + + @@ -3991,6 +4081,11 @@ + + + + + @@ -4081,6 +4176,11 @@ + + + + + @@ -4091,6 +4191,11 @@ + + + + + @@ -4656,11 +4761,21 @@ + + + + + + + + + + @@ -4721,6 +4836,11 @@ + + + + + From 2379c89b4e8930ce2f7f1a2b2a17f3f85a132786 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Wed, 28 May 2025 22:18:28 +0200 Subject: [PATCH 3/4] Update shadow plugin for Gradle 9.0 compatibility --- .../shadow/XmlClassRelocationTransformer.java | 10 ++--- gradle/build.versions.toml | 2 +- gradle/verification-metadata.xml | 41 ++----------------- .../lib/nimbus-jose-jwt-modified/build.gradle | 1 + 4 files changed, 10 insertions(+), 44 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java index b5e922b725cab..ac4ad6afcf7ba 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java @@ -10,11 +10,11 @@ package org.elasticsearch.gradle.internal.shadow; //import com.github.jengelman.gradle.plugins.shadow.ShadowStats; -import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext; + import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext; import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator; -import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext; import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer; +import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext; import org.apache.commons.io.IOUtils; import org.apache.tools.zip.ZipEntry; @@ -27,7 +27,6 @@ import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.List; import java.util.Set; import javax.xml.parsers.DocumentBuilder; @@ -74,7 +73,6 @@ public void transform(TransformerContext context) { private static String getRelocatedClass(String className, TransformerContext context) { Set relocators = context.getRelocators(); -// ShadowStats stats = context.getStats(); if (className != null && className.length() > 0 && relocators != null) { for (Relocator relocator : relocators) { if (relocator.canRelocateClass(className)) { @@ -113,7 +111,9 @@ public boolean hasTransformedResource() { @Override public void modifyOutputStream(ZipOutputStream os, boolean preserveFileTimestamps) { ZipEntry entry = new ZipEntry(resource); - entry.setTime(TransformerContext.getEntryTimestamp(preserveFileTimestamps, entry.getTime())); + if (preserveFileTimestamps) { + entry.setTime(entry.getTime()); + } try { // Write the content back to the XML file diff --git a/gradle/build.versions.toml b/gradle/build.versions.toml index 623d81d5396d3..21946cfda2bef 100644 --- a/gradle/build.versions.toml +++ b/gradle/build.versions.toml @@ -38,7 +38,7 @@ maven-model = "org.apache.maven:maven-model:3.6.2" mockito-core = "org.mockito:mockito-core:1.9.5" nebula-info = "com.netflix.nebula:gradle-info-plugin:11.3.3" reflections = "org.reflections:reflections:0.9.12" -shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:9.0.0-beta12" +shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:9.0.0-beta15" snakeyaml = { group = "org.yaml", name = "snakeyaml", version = { strictly = "2.0" } } spock-core = { group = "org.spockframework", name="spock-core", version.ref="spock" } spock-junit4 = { group = "org.spockframework", name="spock-junit4", version.ref="spock" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 960cb0b9327c5..5ebc3410ca8cf 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -878,44 +878,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/x-pack/plugin/security/lib/nimbus-jose-jwt-modified/build.gradle b/x-pack/plugin/security/lib/nimbus-jose-jwt-modified/build.gradle index d83788891845d..4fca5e9b62f69 100644 --- a/x-pack/plugin/security/lib/nimbus-jose-jwt-modified/build.gradle +++ b/x-pack/plugin/security/lib/nimbus-jose-jwt-modified/build.gradle @@ -20,6 +20,7 @@ tasks.named('shadowJar').configure { // The original library uses this and it gets stripped by shadowJar attributes 'Automatic-Module-Name': 'com.nimbusds.jose.jwt' } + duplicatesStrategy = DuplicatesStrategy.EXCLUDE } ['jarHell', 'thirdPartyAudit', 'forbiddenApisMain', 'splitPackagesAudit', 'licenseHeaders'].each { From dcb432a60f55e28c92cb4f4eb1687ee8cc0cf5bb Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Mon, 2 Jun 2025 08:59:31 +0200 Subject: [PATCH 4/4] Apply changed DuplicatesStrategy to shadowjar --- x-pack/libs/es-opensaml-security-api/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/libs/es-opensaml-security-api/build.gradle b/x-pack/libs/es-opensaml-security-api/build.gradle index 3b4434ec5d9e5..1e4e682ea2aa0 100644 --- a/x-pack/libs/es-opensaml-security-api/build.gradle +++ b/x-pack/libs/es-opensaml-security-api/build.gradle @@ -28,5 +28,6 @@ tasks.named("shadowJar").configure { manifest { attributes 'Automatic-Module-Name': 'org.opensaml.security' } + duplicatesStrategy = DuplicatesStrategy.EXCLUDE exclude 'META-INF/services/org.opensaml.security.crypto.ec.NamedCurve' }