Skip to content

Commit 12a21df

Browse files
authored
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
1 parent f23029f commit 12a21df

File tree

6 files changed

+69
-19
lines changed

6 files changed

+69
-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: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,11 @@
451451
<sha256 value="81cdeef50567735bda9f6b4aabe0cc0a3f6c04f15569192bc6505393d2612c25" origin="Generated by Gradle"/>
452452
</artifact>
453453
</component>
454+
<component group="com.fasterxml.woodstox" name="woodstox-core" version="7.1.0">
455+
<artifact name="woodstox-core-7.1.0.jar">
456+
<sha256 value="81266920a1cdc47306a8a2b4726c99ec89b3fbf31c2470e4f5e477d9d857ca9f" origin="Generated by Gradle"/>
457+
</artifact>
458+
</component>
454459
<component group="com.github.docker-java" name="docker-java-api" version="3.3.4">
455460
<artifact name="docker-java-api-3.3.4.jar">
456461
<sha256 value="650710c70160c1c651e4586a07e55c5f564436cf1f28d83737265ceb5d67696f" origin="Generated by Gradle"/>
@@ -918,9 +923,9 @@
918923
<sha256 value="9c823adc282e96b206956e4a63cb1552bb2bbcec6010bbb6aa9c3d18ecd3f915" origin="Generated by Gradle"/>
919924
</artifact>
920925
</component>
921-
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="8.3.5">
922-
<artifact name="shadow-gradle-plugin-8.3.5.jar">
923-
<sha256 value="54e08dd20a82775e3317a4725a1a5e4ec8b1b1c0f346de702a49d9ed4815b735" origin="Generated by Gradle"/>
926+
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="9.0.1">
927+
<artifact name="shadow-gradle-plugin-9.0.1.jar">
928+
<sha256 value="5d421a5c6f0b436f46f3a73a1672ab28058489f3816ecd980aa17e9670a04f87" origin="Generated by Gradle"/>
924929
</artifact>
925930
</component>
926931
<component group="com.h2database" name="h2" version="1.4.197">
@@ -1443,6 +1448,11 @@
14431448
<sha256 value="675f60bd11a82d481736591fe4054c66471fa5463d45616652fd71585792ba87" origin="Generated by Gradle"/>
14441449
</artifact>
14451450
</component>
1451+
<component group="commons-io" name="commons-io" version="2.20.0">
1452+
<artifact name="commons-io-2.20.0.jar">
1453+
<sha256 value="df90bba0fe3cb586b7f164e78fe8f8f4da3f2dd5c27fa645f888100ccc25dd72" origin="Generated by Gradle"/>
1454+
</artifact>
1455+
</component>
14461456
<component group="commons-io" name="commons-io" version="2.4">
14471457
<artifact name="commons-io-2.4.jar">
14481458
<sha256 value="cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581" origin="Generated by Gradle"/>
@@ -3068,6 +3078,11 @@
30683078
<sha256 value="6e77bb229fc8dcaf09038beeb5e9030b22e9e01b51b458b0183ce669ebcc92ef" origin="Generated by Gradle"/>
30693079
</artifact>
30703080
</component>
3081+
<component group="org.apache.logging.log4j" name="log4j-api" version="2.25.1">
3082+
<artifact name="log4j-api-2.25.1.jar">
3083+
<sha256 value="20b9c77c0a9e54d1063a39e551dcaf98c7d8e7a4994648f84d0b9e14c71f7215" origin="Generated by Gradle"/>
3084+
</artifact>
3085+
</component>
30713086
<component group="org.apache.logging.log4j" name="log4j-core" version="2.17.1">
30723087
<artifact name="log4j-core-2.17.1.jar">
30733088
<sha256 value="c967f223487980b9364e94a7c7f9a8a01fd3ee7c19bdbf0b0f9f8cb8511f3d41" origin="Generated by Gradle"/>
@@ -3093,6 +3108,11 @@
30933108
<sha256 value="00bcf388472ca80a687014181763b66d777177f22cbbf179fd60e1b1ac9bc9b0" origin="Generated by Gradle"/>
30943109
</artifact>
30953110
</component>
3111+
<component group="org.apache.logging.log4j" name="log4j-core" version="2.25.1">
3112+
<artifact name="log4j-core-2.25.1.jar">
3113+
<sha256 value="78c232747855464b182f0abf78a99a22c88d4d270ff585343dab55576d7420e2" origin="Generated by Gradle"/>
3114+
</artifact>
3115+
</component>
30963116
<component group="org.apache.logging.log4j" name="log4j-jcl" version="2.19.0">
30973117
<artifact name="log4j-jcl-2.19.0.jar">
30983118
<sha256 value="47f768ffd66107a66f0c2a19445ab1e42ce6719a7f30f9aa9ef96157c83949fd" origin="Generated by Gradle"/>
@@ -3228,6 +3248,11 @@
32283248
<sha256 value="0681d876cbcf5a6050514edf70c09652d30134bef0cdeb2db90cc807fc71918a" origin="Generated by Gradle"/>
32293249
</artifact>
32303250
</component>
3251+
<component group="org.apache.maven" name="maven-api-annotations" version="4.0.0-rc-3">
3252+
<artifact name="maven-api-annotations-4.0.0-rc-3.jar">
3253+
<sha256 value="5d3490f72ad3a7e82be88b27629f37c59fd2531bae511c3b13866420d5d862bd" origin="Generated by Gradle"/>
3254+
</artifact>
3255+
</component>
32313256
<component group="org.apache.maven" name="maven-api-meta" version="4.0.0-alpha-9">
32323257
<artifact name="maven-api-meta-4.0.0-alpha-9.jar">
32333258
<sha256 value="32c4f5cadbab680c34952f9cb570457a1383ccec4c9a57b0392607d7191c6949" origin="Generated by Gradle"/>
@@ -3238,6 +3263,11 @@
32383263
<sha256 value="29b2628d0f028119715916849c19eed45b32cdc67eb13551798c73afa4aa23d6" origin="Generated by Gradle"/>
32393264
</artifact>
32403265
</component>
3266+
<component group="org.apache.maven" name="maven-api-xml" version="4.0.0-rc-3">
3267+
<artifact name="maven-api-xml-4.0.0-rc-3.jar">
3268+
<sha256 value="f3e3b3642373c69d4c7441d40eba0765e1d744e992b62194452f5ea5451dfdba" origin="Generated by Gradle"/>
3269+
</artifact>
3270+
</component>
32413271
<component group="org.apache.maven" name="maven-archiver" version="3.5.1">
32423272
<artifact name="maven-archiver-3.5.1.jar">
32433273
<sha256 value="d0674469f8e6fbc866dbc5c955463d7629b7755ac7c87a235b9469d8257d6b8c" origin="Generated by Gradle"/>
@@ -3308,6 +3338,11 @@
33083338
<sha256 value="2d669935e1069c2e9566f3cc81dd5da80b170ac64d09597f6ef7de2f1ff1b149" origin="Generated by Gradle"/>
33093339
</artifact>
33103340
</component>
3341+
<component group="org.apache.maven" name="maven-xml" version="4.0.0-rc-3">
3342+
<artifact name="maven-xml-4.0.0-rc-3.jar">
3343+
<sha256 value="063c424cb47f75164125d5eea25167b931dd694e34268d50247374e74211dd19" origin="Generated by Gradle"/>
3344+
</artifact>
3345+
</component>
33113346
<component group="org.apache.maven" name="maven-xml-impl" version="4.0.0-alpha-9">
33123347
<artifact name="maven-xml-impl-4.0.0-alpha-9.jar">
33133348
<sha256 value="26e702b881d57ae4ee88d02c00940ba64063705ee69205ae8958bf839a8b06b1" origin="Generated by Gradle"/>
@@ -3741,6 +3776,11 @@
37413776
<sha256 value="069e78b537108dc6124a67073fc998264791f6b6499e955a38e72bb3e4fe1adf" origin="Generated by Gradle"/>
37423777
</artifact>
37433778
</component>
3779+
<component group="org.codehaus.plexus" name="plexus-xml" version="4.1.0">
3780+
<artifact name="plexus-xml-4.1.0.jar">
3781+
<sha256 value="86e6a7f07484e8b1f7af66d97d3ba3cb3d692a5461b4b1d0a2b7670cf5748e89" origin="Generated by Gradle"/>
3782+
</artifact>
3783+
</component>
37443784
<component group="org.codehaus.woodstox" name="stax2-api" version="4.2.1">
37453785
<artifact name="stax2-api-4.2.1.jar">
37463786
<sha256 value="678567e48b51a42c65c699f266539ad3d676d4b1a5b0ad7d89ece8b9d5772579" origin="Generated by Gradle"/>
@@ -4696,6 +4736,11 @@
46964736
<sha256 value="9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0" origin="Generated by Gradle"/>
46974737
</artifact>
46984738
</component>
4739+
<component group="org.ow2.asm" name="asm-commons" version="9.8">
4740+
<artifact name="asm-commons-9.8.jar">
4741+
<sha256 value="3301a1c1cb4c59fcc5292648dac1d7c5aed4c0f067dfbe88873b8cdfe77404f4" origin="Generated by Gradle"/>
4742+
</artifact>
4743+
</component>
46994744
<component group="org.ow2.asm" name="asm-tree" version="7.2">
47004745
<artifact name="asm-tree-7.2.jar">
47014746
<sha256 value="c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656" origin="Generated by Gradle"/>
@@ -4951,6 +4996,11 @@
49514996
<sha256 value="cdda03003fa9551315a4cc3fc163f18495f191b49a8f70a3aae232f049a7fdd0" origin="Generated by Gradle"/>
49524997
</artifact>
49534998
</component>
4999+
<component group="org.vafer" name="jdependency" version="2.13">
5000+
<artifact name="jdependency-2.13.jar">
5001+
<sha256 value="145c60864b236a7b1296550d31a49aa75ad612958138ee0d471b9fcb0bbedd3e" origin="Generated by Gradle"/>
5002+
</artifact>
5003+
</component>
49545004
<component group="org.vafer" name="jdependency" version="2.7.0">
49555005
<artifact name="jdependency-2.7.0.jar">
49565006
<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
@@ -148,6 +148,7 @@ tasks.named("shadowJar").configure {
148148
relocate("org.apache.hadoop", "fixture.hdfs3.org.apache.hadoop") {
149149
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
150150
exclude "org.apache.hadoop.ipc.StandbyException"
151+
exclude "org.apache.hadoop.application-classloader.properties"
151152
}
152153
configurations.add(project.configurations.hdfs3)
153154
}
@@ -156,6 +157,7 @@ def hdfs2Jar = tasks.register("hdfs2jar", ShadowJar) {
156157
relocate("org.apache.hadoop", "fixture.hdfs2.org.apache.hadoop") {
157158
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
158159
exclude "org.apache.hadoop.ipc.StandbyException"
160+
exclude "org.apache.hadoop.application-classloader.properties"
159161
}
160162
archiveClassifier.set("hdfs2")
161163
from sourceSets.main.output
@@ -173,6 +175,10 @@ tasks.withType(ShadowJar).configureEach {
173175
exclude(dependency('com.fasterxml.jackson.core:.*:.*'))
174176
}
175177

178+
filesMatching("META-INF/services/**") {
179+
duplicatesStrategy = DuplicatesStrategy.INCLUDE // Or something else.
180+
}
181+
176182
transform(org.elasticsearch.gradle.internal.shadow.XmlClassRelocationTransformer.class) {
177183
resource = "core-default.xml"
178184
enabled = true

0 commit comments

Comments
 (0)