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/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..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 @@ -9,10 +9,11 @@ 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.Relocator; -import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer; +import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer; import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext; import org.apache.commons.io.IOUtils; @@ -26,7 +27,7 @@ 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; import javax.xml.parsers.DocumentBuilderFactory; @@ -35,7 +36,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 +56,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 +67,16 @@ 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(); 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); } } @@ -111,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 @@ -135,9 +137,4 @@ public void modifyOutputStream(ZipOutputStream os, boolean preserveFileTimestamp doc = null; } } - - @Override - public String getName() { - return getClass().getSimpleName(); - } } 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/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..21946cfda2bef 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-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 566a640e9bd55..5ebc3410ca8cf 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -421,6 +421,11 @@ + + + + + @@ -873,9 +878,9 @@ - - - + + + @@ -1318,6 +1323,11 @@ + + + + + @@ -2385,6 +2395,11 @@ + + + + + @@ -2918,6 +2933,16 @@ + + + + + + + + + + @@ -2943,6 +2968,16 @@ + + + + + + + + + + @@ -3078,6 +3113,11 @@ + + + + + @@ -3088,6 +3128,11 @@ + + + + + @@ -3153,6 +3198,11 @@ + + + + + @@ -3571,6 +3621,11 @@ + + + + + @@ -3991,6 +4046,11 @@ + + + + + @@ -4081,6 +4141,11 @@ + + + + + @@ -4091,6 +4156,11 @@ + + + + + @@ -4656,11 +4726,21 @@ + + + + + + + + + + @@ -4721,6 +4801,11 @@ + + + + + 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 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' } 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 {