Skip to content

Commit 65518c2

Browse files
authored
Update Gradle shadow plugin to 9.0.1 (#132637) (#133182)
* 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 (cherry picked from commit 12a21df) # Conflicts: # build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/util/DependenciesUtils.java
1 parent 27ca285 commit 65518c2

File tree

6 files changed

+68
-19
lines changed

6 files changed

+68
-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: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,4 @@ public static FileCollection createFileCollectionFromNonTransitiveArtifactsView(
4646
);
4747
}).getFiles();
4848
}
49-
5049
}

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
@@ -442,6 +442,11 @@
442442
<sha256 value="81cdeef50567735bda9f6b4aabe0cc0a3f6c04f15569192bc6505393d2612c25" origin="Generated by Gradle"/>
443443
</artifact>
444444
</component>
445+
<component group="com.fasterxml.woodstox" name="woodstox-core" version="7.1.0">
446+
<artifact name="woodstox-core-7.1.0.jar">
447+
<sha256 value="81266920a1cdc47306a8a2b4726c99ec89b3fbf31c2470e4f5e477d9d857ca9f" origin="Generated by Gradle"/>
448+
</artifact>
449+
</component>
445450
<component group="com.github.docker-java" name="docker-java-api" version="3.3.4">
446451
<artifact name="docker-java-api-3.3.4.jar">
447452
<sha256 value="650710c70160c1c651e4586a07e55c5f564436cf1f28d83737265ceb5d67696f" origin="Generated by Gradle"/>
@@ -829,9 +834,9 @@
829834
<sha256 value="9c823adc282e96b206956e4a63cb1552bb2bbcec6010bbb6aa9c3d18ecd3f915" origin="Generated by Gradle"/>
830835
</artifact>
831836
</component>
832-
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="8.3.5">
833-
<artifact name="shadow-gradle-plugin-8.3.5.jar">
834-
<sha256 value="54e08dd20a82775e3317a4725a1a5e4ec8b1b1c0f346de702a49d9ed4815b735" origin="Generated by Gradle"/>
837+
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="9.0.1">
838+
<artifact name="shadow-gradle-plugin-9.0.1.jar">
839+
<sha256 value="5d421a5c6f0b436f46f3a73a1672ab28058489f3816ecd980aa17e9670a04f87" origin="Generated by Gradle"/>
835840
</artifact>
836841
</component>
837842
<component group="com.h2database" name="h2" version="1.4.197">
@@ -1364,6 +1369,11 @@
13641369
<sha256 value="675f60bd11a82d481736591fe4054c66471fa5463d45616652fd71585792ba87" origin="Generated by Gradle"/>
13651370
</artifact>
13661371
</component>
1372+
<component group="commons-io" name="commons-io" version="2.20.0">
1373+
<artifact name="commons-io-2.20.0.jar">
1374+
<sha256 value="df90bba0fe3cb586b7f164e78fe8f8f4da3f2dd5c27fa645f888100ccc25dd72" origin="Generated by Gradle"/>
1375+
</artifact>
1376+
</component>
13671377
<component group="commons-io" name="commons-io" version="2.4">
13681378
<artifact name="commons-io-2.4.jar">
13691379
<sha256 value="cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581" origin="Generated by Gradle"/>
@@ -2979,6 +2989,11 @@
29792989
<sha256 value="6e77bb229fc8dcaf09038beeb5e9030b22e9e01b51b458b0183ce669ebcc92ef" origin="Generated by Gradle"/>
29802990
</artifact>
29812991
</component>
2992+
<component group="org.apache.logging.log4j" name="log4j-api" version="2.25.1">
2993+
<artifact name="log4j-api-2.25.1.jar">
2994+
<sha256 value="20b9c77c0a9e54d1063a39e551dcaf98c7d8e7a4994648f84d0b9e14c71f7215" origin="Generated by Gradle"/>
2995+
</artifact>
2996+
</component>
29822997
<component group="org.apache.logging.log4j" name="log4j-core" version="2.17.1">
29832998
<artifact name="log4j-core-2.17.1.jar">
29842999
<sha256 value="c967f223487980b9364e94a7c7f9a8a01fd3ee7c19bdbf0b0f9f8cb8511f3d41" origin="Generated by Gradle"/>
@@ -3004,6 +3019,11 @@
30043019
<sha256 value="00bcf388472ca80a687014181763b66d777177f22cbbf179fd60e1b1ac9bc9b0" origin="Generated by Gradle"/>
30053020
</artifact>
30063021
</component>
3022+
<component group="org.apache.logging.log4j" name="log4j-core" version="2.25.1">
3023+
<artifact name="log4j-core-2.25.1.jar">
3024+
<sha256 value="78c232747855464b182f0abf78a99a22c88d4d270ff585343dab55576d7420e2" origin="Generated by Gradle"/>
3025+
</artifact>
3026+
</component>
30073027
<component group="org.apache.logging.log4j" name="log4j-jcl" version="2.19.0">
30083028
<artifact name="log4j-jcl-2.19.0.jar">
30093029
<sha256 value="47f768ffd66107a66f0c2a19445ab1e42ce6719a7f30f9aa9ef96157c83949fd" origin="Generated by Gradle"/>
@@ -3139,6 +3159,11 @@
31393159
<sha256 value="ed3e2df9ddff24411cac5ba264e53f02dcbfa426f9428a3ae8da2e667bd1d18f" origin="Generated by Gradle"/>
31403160
</artifact>
31413161
</component>
3162+
<component group="org.apache.maven" name="maven-api-annotations" version="4.0.0-rc-3">
3163+
<artifact name="maven-api-annotations-4.0.0-rc-3.jar">
3164+
<sha256 value="5d3490f72ad3a7e82be88b27629f37c59fd2531bae511c3b13866420d5d862bd" origin="Generated by Gradle"/>
3165+
</artifact>
3166+
</component>
31423167
<component group="org.apache.maven" name="maven-api-meta" version="4.0.0-alpha-9">
31433168
<artifact name="maven-api-meta-4.0.0-alpha-9.jar">
31443169
<sha256 value="32c4f5cadbab680c34952f9cb570457a1383ccec4c9a57b0392607d7191c6949" origin="Generated by Gradle"/>
@@ -3149,6 +3174,11 @@
31493174
<sha256 value="29b2628d0f028119715916849c19eed45b32cdc67eb13551798c73afa4aa23d6" origin="Generated by Gradle"/>
31503175
</artifact>
31513176
</component>
3177+
<component group="org.apache.maven" name="maven-api-xml" version="4.0.0-rc-3">
3178+
<artifact name="maven-api-xml-4.0.0-rc-3.jar">
3179+
<sha256 value="f3e3b3642373c69d4c7441d40eba0765e1d744e992b62194452f5ea5451dfdba" origin="Generated by Gradle"/>
3180+
</artifact>
3181+
</component>
31523182
<component group="org.apache.maven" name="maven-archiver" version="3.5.1">
31533183
<artifact name="maven-archiver-3.5.1.jar">
31543184
<sha256 value="d0674469f8e6fbc866dbc5c955463d7629b7755ac7c87a235b9469d8257d6b8c" origin="Generated by Gradle"/>
@@ -3219,6 +3249,11 @@
32193249
<sha256 value="2d669935e1069c2e9566f3cc81dd5da80b170ac64d09597f6ef7de2f1ff1b149" origin="Generated by Gradle"/>
32203250
</artifact>
32213251
</component>
3252+
<component group="org.apache.maven" name="maven-xml" version="4.0.0-rc-3">
3253+
<artifact name="maven-xml-4.0.0-rc-3.jar">
3254+
<sha256 value="063c424cb47f75164125d5eea25167b931dd694e34268d50247374e74211dd19" origin="Generated by Gradle"/>
3255+
</artifact>
3256+
</component>
32223257
<component group="org.apache.maven" name="maven-xml-impl" version="4.0.0-alpha-9">
32233258
<artifact name="maven-xml-impl-4.0.0-alpha-9.jar">
32243259
<sha256 value="26e702b881d57ae4ee88d02c00940ba64063705ee69205ae8958bf839a8b06b1" origin="Generated by Gradle"/>
@@ -3647,6 +3682,11 @@
36473682
<sha256 value="069e78b537108dc6124a67073fc998264791f6b6499e955a38e72bb3e4fe1adf" origin="Generated by Gradle"/>
36483683
</artifact>
36493684
</component>
3685+
<component group="org.codehaus.plexus" name="plexus-xml" version="4.1.0">
3686+
<artifact name="plexus-xml-4.1.0.jar">
3687+
<sha256 value="86e6a7f07484e8b1f7af66d97d3ba3cb3d692a5461b4b1d0a2b7670cf5748e89" origin="Generated by Gradle"/>
3688+
</artifact>
3689+
</component>
36503690
<component group="org.codehaus.woodstox" name="stax2-api" version="4.2.1">
36513691
<artifact name="stax2-api-4.2.1.jar">
36523692
<sha256 value="678567e48b51a42c65c699f266539ad3d676d4b1a5b0ad7d89ece8b9d5772579" origin="Generated by Gradle"/>
@@ -4602,6 +4642,11 @@
46024642
<sha256 value="9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0" origin="Generated by Gradle"/>
46034643
</artifact>
46044644
</component>
4645+
<component group="org.ow2.asm" name="asm-commons" version="9.8">
4646+
<artifact name="asm-commons-9.8.jar">
4647+
<sha256 value="3301a1c1cb4c59fcc5292648dac1d7c5aed4c0f067dfbe88873b8cdfe77404f4" origin="Generated by Gradle"/>
4648+
</artifact>
4649+
</component>
46054650
<component group="org.ow2.asm" name="asm-tree" version="7.2">
46064651
<artifact name="asm-tree-7.2.jar">
46074652
<sha256 value="c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656" origin="Generated by Gradle"/>
@@ -4857,6 +4902,11 @@
48574902
<sha256 value="cdda03003fa9551315a4cc3fc163f18495f191b49a8f70a3aae232f049a7fdd0" origin="Generated by Gradle"/>
48584903
</artifact>
48594904
</component>
4905+
<component group="org.vafer" name="jdependency" version="2.13">
4906+
<artifact name="jdependency-2.13.jar">
4907+
<sha256 value="145c60864b236a7b1296550d31a49aa75ad612958138ee0d471b9fcb0bbedd3e" origin="Generated by Gradle"/>
4908+
</artifact>
4909+
</component>
48604910
<component group="org.vafer" name="jdependency" version="2.7.0">
48614911
<artifact name="jdependency-2.7.0.jar">
48624912
<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
@@ -136,6 +136,7 @@ tasks.named("shadowJar").configure {
136136
relocate("org.apache.hadoop", "fixture.hdfs3.org.apache.hadoop") {
137137
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
138138
exclude "org.apache.hadoop.ipc.StandbyException"
139+
exclude "org.apache.hadoop.application-classloader.properties"
139140
}
140141
configurations.add(project.configurations.hdfs3)
141142
}
@@ -144,6 +145,7 @@ def hdfs2Jar = tasks.register("hdfs2jar", ShadowJar) {
144145
relocate("org.apache.hadoop", "fixture.hdfs2.org.apache.hadoop") {
145146
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
146147
exclude "org.apache.hadoop.ipc.StandbyException"
148+
exclude "org.apache.hadoop.application-classloader.properties"
147149
}
148150
archiveClassifier.set("hdfs2")
149151
from sourceSets.main.output
@@ -161,6 +163,10 @@ tasks.withType(ShadowJar).configureEach {
161163
exclude(dependency('com.fasterxml.jackson.core:.*:.*'))
162164
}
163165

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

0 commit comments

Comments
 (0)