Skip to content

Commit d807aa6

Browse files
authored
[9.0] Update Gradle shadow plugin to 9.0.1 (#132637) (#132914)
* Update Gradle shadow plugin to 9.0.1 (#132637) * Update Gradle shadow plugin to 9.0.1 This fixes incompatibility issues with Gradle 9.0 * Fix hdfs fixture shadow tasks there was a change in behaviour in the shadow jar implementation with the version update * Cleanup verification * Add missing verification data
1 parent cf585fa commit d807aa6

File tree

6 files changed

+79
-19
lines changed

6 files changed

+79
-19
lines changed

build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/PublishPlugin.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import groovy.util.Node;
1313
import nmcp.NmcpPlugin;
1414

15-
import com.github.jengelman.gradle.plugins.shadow.ShadowExtension;
1615
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin;
1716

1817
import org.elasticsearch.gradle.internal.conventions.info.GitInfo;
@@ -173,8 +172,7 @@ private void addNameAndDescriptionToPom(Project project, NamedDomainObjectSet<Ma
173172
}
174173

175174
private static void configureWithShadowPlugin(Project project, MavenPublication publication) {
176-
var shadow = project.getExtensions().getByType(ShadowExtension.class);
177-
shadow.component(publication);
175+
publication.from(project.getComponents().getByName("shadow"));
178176
publication.artifact(project.getTasks().named("javadocJar"));
179177
publication.artifact(project.getTasks().named("sourcesJar"));
180178
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/shadow/XmlClassRelocationTransformer.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99

1010
package org.elasticsearch.gradle.internal.shadow;
1111

12-
import com.github.jengelman.gradle.plugins.shadow.ShadowStats;
1312
import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext;
1413
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator;
15-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer;
14+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer;
1615
import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext;
1716

1817
import org.apache.commons.io.IOUtils;
@@ -26,7 +25,7 @@
2625
import java.io.BufferedInputStream;
2726
import java.io.ByteArrayOutputStream;
2827
import java.io.IOException;
29-
import java.util.List;
28+
import java.util.Set;
3029

3130
import javax.xml.parsers.DocumentBuilder;
3231
import javax.xml.parsers.DocumentBuilderFactory;
@@ -35,7 +34,7 @@
3534
import javax.xml.transform.dom.DOMSource;
3635
import javax.xml.transform.stream.StreamResult;
3736

38-
public class XmlClassRelocationTransformer implements Transformer {
37+
public class XmlClassRelocationTransformer implements ResourceTransformer {
3938

4039
boolean hasTransformedResource = false;
4140

@@ -55,7 +54,7 @@ public boolean canTransformResource(FileTreeElement element) {
5554
@Override
5655
public void transform(TransformerContext context) {
5756
try {
58-
BufferedInputStream bis = new BufferedInputStream(context.getIs());
57+
BufferedInputStream bis = new BufferedInputStream(context.getInputStream());
5958
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
6059
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
6160
doc = dBuilder.parse(bis);
@@ -66,17 +65,16 @@ public void transform(TransformerContext context) {
6665
this.doc = null;
6766
}
6867
} catch (Exception e) {
69-
throw new RuntimeException("Error parsing xml file in " + context.getIs(), e);
68+
throw new RuntimeException("Error parsing xml file in " + context.getInputStream(), e);
7069
}
7170
}
7271

7372
private static String getRelocatedClass(String className, TransformerContext context) {
74-
List<Relocator> relocators = context.getRelocators();
75-
ShadowStats stats = context.getStats();
73+
Set<Relocator> relocators = context.getRelocators();
7674
if (className != null && className.length() > 0 && relocators != null) {
7775
for (Relocator relocator : relocators) {
7876
if (relocator.canRelocateClass(className)) {
79-
RelocateClassContext relocateClassContext = new RelocateClassContext(className, stats);
77+
RelocateClassContext relocateClassContext = new RelocateClassContext(className);
8078
return relocator.relocateClass(relocateClassContext);
8179
}
8280
}
@@ -111,8 +109,6 @@ public boolean hasTransformedResource() {
111109
@Override
112110
public void modifyOutputStream(ZipOutputStream os, boolean preserveFileTimestamps) {
113111
ZipEntry entry = new ZipEntry(resource);
114-
entry.setTime(TransformerContext.getEntryTimestamp(preserveFileTimestamps, entry.getTime()));
115-
116112
try {
117113
// Write the content back to the XML file
118114
TransformerFactory transformerFactory = TransformerFactory.newInstance();

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/util/DependenciesUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public static FileCollection thirdPartyDependenciesView(Configuration configurat
6666
.stream()
6767
.filter(dep -> dep instanceof ResolvedDependencyResult)
6868
.map(dep -> (ResolvedDependencyResult) dep)
69-
.filter(dep -> dep.getResolvedVariant().getDisplayName() == ShadowBasePlugin.COMPONENT_NAME)
69+
.filter(dep -> dep.getResolvedVariant().getDisplayName() == ShadowBasePlugin.SHADOW)
7070
.filter(dep -> dep.getSelected() instanceof ResolvedComponentResult)
7171
.map(dep -> dep.getSelected().getId())
7272
.collect(Collectors.toSet())

gradle/build.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ mockito-core = "org.mockito:mockito-core:1.9.5"
4040
nmcp = { group = "com.gradleup.nmcp", name = "nmcp", version.ref="nmcp" }
4141
nebula-info = "com.netflix.nebula:gradle-info-plugin:11.3.3"
4242
reflections = "org.reflections:reflections:0.9.12"
43-
shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:8.3.5"
43+
shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:9.0.1"
4444
snakeyaml = { group = "org.yaml", name = "snakeyaml", version = { strictly = "2.0" } }
4545
spock-core = { group = "org.spockframework", name="spock-core", version.ref="spock" }
4646
spock-junit4 = { group = "org.spockframework", name="spock-junit4", version.ref="spock" }

gradle/verification-metadata.xml

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,11 @@
449449
<sha256 value="81cdeef50567735bda9f6b4aabe0cc0a3f6c04f15569192bc6505393d2612c25" origin="Generated by Gradle"/>
450450
</artifact>
451451
</component>
452+
<component group="com.fasterxml.woodstox" name="woodstox-core" version="7.1.0">
453+
<artifact name="woodstox-core-7.1.0.jar">
454+
<sha256 value="81266920a1cdc47306a8a2b4726c99ec89b3fbf31c2470e4f5e477d9d857ca9f" origin="Generated by Gradle"/>
455+
</artifact>
456+
</component>
452457
<component group="com.github.docker-java" name="docker-java-api" version="3.3.4">
453458
<artifact name="docker-java-api-3.3.4.jar">
454459
<sha256 value="650710c70160c1c651e4586a07e55c5f564436cf1f28d83737265ceb5d67696f" origin="Generated by Gradle"/>
@@ -836,9 +841,9 @@
836841
<sha256 value="9c823adc282e96b206956e4a63cb1552bb2bbcec6010bbb6aa9c3d18ecd3f915" origin="Generated by Gradle"/>
837842
</artifact>
838843
</component>
839-
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="8.3.5">
840-
<artifact name="shadow-gradle-plugin-8.3.5.jar">
841-
<sha256 value="54e08dd20a82775e3317a4725a1a5e4ec8b1b1c0f346de702a49d9ed4815b735" origin="Generated by Gradle"/>
844+
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="9.0.1">
845+
<artifact name="shadow-gradle-plugin-9.0.1.jar">
846+
<sha256 value="5d421a5c6f0b436f46f3a73a1672ab28058489f3816ecd980aa17e9670a04f87" origin="Generated by Gradle"/>
842847
</artifact>
843848
</component>
844849
<component group="com.h2database" name="h2" version="1.4.197">
@@ -1301,6 +1306,11 @@
13011306
<sha256 value="675f60bd11a82d481736591fe4054c66471fa5463d45616652fd71585792ba87" origin="Generated by Gradle"/>
13021307
</artifact>
13031308
</component>
1309+
<component group="commons-io" name="commons-io" version="2.20.0">
1310+
<artifact name="commons-io-2.20.0.jar">
1311+
<sha256 value="df90bba0fe3cb586b7f164e78fe8f8f4da3f2dd5c27fa645f888100ccc25dd72" origin="Generated by Gradle"/>
1312+
</artifact>
1313+
</component>
13041314
<component group="commons-io" name="commons-io" version="2.4">
13051315
<artifact name="commons-io-2.4.jar">
13061316
<sha256 value="cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581" origin="Generated by Gradle"/>
@@ -2886,6 +2896,11 @@
28862896
<sha256 value="6e77bb229fc8dcaf09038beeb5e9030b22e9e01b51b458b0183ce669ebcc92ef" origin="Generated by Gradle"/>
28872897
</artifact>
28882898
</component>
2899+
<component group="org.apache.logging.log4j" name="log4j-api" version="2.25.1">
2900+
<artifact name="log4j-api-2.25.1.jar">
2901+
<sha256 value="20b9c77c0a9e54d1063a39e551dcaf98c7d8e7a4994648f84d0b9e14c71f7215" origin="Generated by Gradle"/>
2902+
</artifact>
2903+
</component>
28892904
<component group="org.apache.logging.log4j" name="log4j-core" version="2.17.1">
28902905
<artifact name="log4j-core-2.17.1.jar">
28912906
<sha256 value="c967f223487980b9364e94a7c7f9a8a01fd3ee7c19bdbf0b0f9f8cb8511f3d41" origin="Generated by Gradle"/>
@@ -2911,6 +2926,11 @@
29112926
<sha256 value="00bcf388472ca80a687014181763b66d777177f22cbbf179fd60e1b1ac9bc9b0" origin="Generated by Gradle"/>
29122927
</artifact>
29132928
</component>
2929+
<component group="org.apache.logging.log4j" name="log4j-core" version="2.25.1">
2930+
<artifact name="log4j-core-2.25.1.jar">
2931+
<sha256 value="78c232747855464b182f0abf78a99a22c88d4d270ff585343dab55576d7420e2" origin="Generated by Gradle"/>
2932+
</artifact>
2933+
</component>
29142934
<component group="org.apache.logging.log4j" name="log4j-jcl" version="2.19.0">
29152935
<artifact name="log4j-jcl-2.19.0.jar">
29162936
<sha256 value="47f768ffd66107a66f0c2a19445ab1e42ce6719a7f30f9aa9ef96157c83949fd" origin="Generated by Gradle"/>
@@ -3096,6 +3116,11 @@
30963116
</sha256>
30973117
</artifact>
30983118
</component>
3119+
<component group="org.apache.maven" name="maven-api-annotations" version="4.0.0-rc-3">
3120+
<artifact name="maven-api-annotations-4.0.0-rc-3.jar">
3121+
<sha256 value="5d3490f72ad3a7e82be88b27629f37c59fd2531bae511c3b13866420d5d862bd" origin="Generated by Gradle"/>
3122+
</artifact>
3123+
</component>
30993124
<component group="org.apache.maven" name="maven-api-meta" version="4.0.0-alpha-9">
31003125
<artifact name="maven-api-meta-4.0.0-alpha-9.jar">
31013126
<sha256 value="32c4f5cadbab680c34952f9cb570457a1383ccec4c9a57b0392607d7191c6949" origin="Generated by Gradle"/>
@@ -3106,6 +3131,11 @@
31063131
<sha256 value="29b2628d0f028119715916849c19eed45b32cdc67eb13551798c73afa4aa23d6" origin="Generated by Gradle"/>
31073132
</artifact>
31083133
</component>
3134+
<component group="org.apache.maven" name="maven-api-xml" version="4.0.0-rc-3">
3135+
<artifact name="maven-api-xml-4.0.0-rc-3.jar">
3136+
<sha256 value="f3e3b3642373c69d4c7441d40eba0765e1d744e992b62194452f5ea5451dfdba" origin="Generated by Gradle"/>
3137+
</artifact>
3138+
</component>
31093139
<component group="org.apache.maven" name="maven-archiver" version="3.5.1">
31103140
<artifact name="maven-archiver-3.5.1.jar">
31113141
<sha256 value="d0674469f8e6fbc866dbc5c955463d7629b7755ac7c87a235b9469d8257d6b8c" origin="Generated by Gradle"/>
@@ -3176,6 +3206,11 @@
31763206
<sha256 value="2d669935e1069c2e9566f3cc81dd5da80b170ac64d09597f6ef7de2f1ff1b149" origin="Generated by Gradle"/>
31773207
</artifact>
31783208
</component>
3209+
<component group="org.apache.maven" name="maven-xml" version="4.0.0-rc-3">
3210+
<artifact name="maven-xml-4.0.0-rc-3.jar">
3211+
<sha256 value="063c424cb47f75164125d5eea25167b931dd694e34268d50247374e74211dd19" origin="Generated by Gradle"/>
3212+
</artifact>
3213+
</component>
31793214
<component group="org.apache.maven" name="maven-xml-impl" version="4.0.0-alpha-9">
31803215
<artifact name="maven-xml-impl-4.0.0-alpha-9.jar">
31813216
<sha256 value="26e702b881d57ae4ee88d02c00940ba64063705ee69205ae8958bf839a8b06b1" origin="Generated by Gradle"/>
@@ -3599,6 +3634,11 @@
35993634
<sha256 value="069e78b537108dc6124a67073fc998264791f6b6499e955a38e72bb3e4fe1adf" origin="Generated by Gradle"/>
36003635
</artifact>
36013636
</component>
3637+
<component group="org.codehaus.plexus" name="plexus-xml" version="4.1.0">
3638+
<artifact name="plexus-xml-4.1.0.jar">
3639+
<sha256 value="86e6a7f07484e8b1f7af66d97d3ba3cb3d692a5461b4b1d0a2b7670cf5748e89" origin="Generated by Gradle"/>
3640+
</artifact>
3641+
</component>
36023642
<component group="org.codehaus.woodstox" name="stax2-api" version="4.2.1">
36033643
<artifact name="stax2-api-4.2.1.jar">
36043644
<sha256 value="678567e48b51a42c65c699f266539ad3d676d4b1a5b0ad7d89ece8b9d5772579" origin="Generated by Gradle"/>
@@ -4464,6 +4504,11 @@
44644504
<sha256 value="8cadd43ac5eb6d09de05faecca38b917a040bb9139c7edeb4cc81c740b713281" origin="Generated by Gradle"/>
44654505
</artifact>
44664506
</component>
4507+
<component group="org.ow2.asm" name="asm" version="9.8">
4508+
<artifact name="asm-9.8.jar">
4509+
<sha256 value="876eab6a83daecad5ca67eb9fcabb063c97b5aeb8cf1fca7a989ecde17522051" origin="Generated by Gradle"/>
4510+
</artifact>
4511+
</component>
44674512
<component group="org.ow2.asm" name="asm-analysis" version="7.2">
44684513
<artifact name="asm-analysis-7.2.jar">
44694514
<sha256 value="be922aae60ff1ff1768e8e6544a38a7f92bd0a6d6b0b9791f94955d1bd453de2" origin="Generated by Gradle"/>
@@ -4509,6 +4554,11 @@
45094554
<sha256 value="9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0" origin="Generated by Gradle"/>
45104555
</artifact>
45114556
</component>
4557+
<component group="org.ow2.asm" name="asm-commons" version="9.8">
4558+
<artifact name="asm-commons-9.8.jar">
4559+
<sha256 value="3301a1c1cb4c59fcc5292648dac1d7c5aed4c0f067dfbe88873b8cdfe77404f4" origin="Generated by Gradle"/>
4560+
</artifact>
4561+
</component>
45124562
<component group="org.ow2.asm" name="asm-tree" version="7.2">
45134563
<artifact name="asm-tree-7.2.jar">
45144564
<sha256 value="c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656" origin="Generated by Gradle"/>
@@ -4549,6 +4599,11 @@
45494599
<sha256 value="9929881f59eb6b840e86d54570c77b59ce721d104e6dfd7a40978991c2d3b41f" origin="Generated by Gradle"/>
45504600
</artifact>
45514601
</component>
4602+
<component group="org.ow2.asm" name="asm-tree" version="9.8">
4603+
<artifact name="asm-tree-9.8.jar">
4604+
<sha256 value="14b7880cb7c85eed101e2710432fc3ffb83275532a6a894dc4c4095d49ad59f1" origin="Generated by Gradle"/>
4605+
</artifact>
4606+
</component>
45524607
<component group="org.ow2.asm" name="asm-util" version="7.2">
45534608
<artifact name="asm-util-7.2.jar">
45544609
<sha256 value="6e24913b021ffacfe8e7e053d6e0ccc731941148cfa078d4f1ed3d96904530f8" origin="Generated by Gradle"/>
@@ -4754,6 +4809,11 @@
47544809
<sha256 value="cdda03003fa9551315a4cc3fc163f18495f191b49a8f70a3aae232f049a7fdd0" origin="Generated by Gradle"/>
47554810
</artifact>
47564811
</component>
4812+
<component group="org.vafer" name="jdependency" version="2.13">
4813+
<artifact name="jdependency-2.13.jar">
4814+
<sha256 value="145c60864b236a7b1296550d31a49aa75ad612958138ee0d471b9fcb0bbedd3e" origin="Generated by Gradle"/>
4815+
</artifact>
4816+
</component>
47574817
<component group="org.vafer" name="jdependency" version="2.7.0">
47584818
<artifact name="jdependency-2.7.0.jar">
47594819
<sha256 value="d63efd5746ff408943a7dd7ef85ae9f09aa7fb63bb2b16911427ce6c45b59fd0" origin="Generated by Gradle"/>

test/fixtures/hdfs-fixture/build.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ tasks.named("shadowJar").configure {
137137
relocate("org.apache.hadoop", "fixture.hdfs3.org.apache.hadoop") {
138138
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
139139
exclude "org.apache.hadoop.ipc.StandbyException"
140+
exclude "org.apache.hadoop.application-classloader.properties"
140141
}
141142
configurations.add(project.configurations.hdfs3)
142143
}
@@ -145,6 +146,7 @@ def hdfs2Jar = tasks.register("hdfs2jar", ShadowJar) {
145146
relocate("org.apache.hadoop", "fixture.hdfs2.org.apache.hadoop") {
146147
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
147148
exclude "org.apache.hadoop.ipc.StandbyException"
149+
exclude "org.apache.hadoop.application-classloader.properties"
148150
}
149151
archiveClassifier.set("hdfs2")
150152
from sourceSets.main.output
@@ -162,6 +164,10 @@ tasks.withType(ShadowJar).configureEach {
162164
exclude(dependency('com.fasterxml.jackson.core:.*:.*'))
163165
}
164166

167+
filesMatching("META-INF/services/**") {
168+
duplicatesStrategy = DuplicatesStrategy.INCLUDE // Or something else.
169+
}
170+
165171
transform(org.elasticsearch.gradle.internal.shadow.XmlClassRelocationTransformer.class) {
166172
resource = "core-default.xml"
167173
enabled = true

0 commit comments

Comments
 (0)