Skip to content

Commit 41e8ce7

Browse files
committed
Update Gradle shadow plugin to 9.0.1 (elastic#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 (cherry picked from commit 12a21df) # Conflicts: # build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/util/DependenciesUtils.java
1 parent ac336b3 commit 41e8ce7

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
@@ -445,6 +445,11 @@
445445
<sha256 value="81cdeef50567735bda9f6b4aabe0cc0a3f6c04f15569192bc6505393d2612c25" origin="Generated by Gradle"/>
446446
</artifact>
447447
</component>
448+
<component group="com.fasterxml.woodstox" name="woodstox-core" version="7.1.0">
449+
<artifact name="woodstox-core-7.1.0.jar">
450+
<sha256 value="81266920a1cdc47306a8a2b4726c99ec89b3fbf31c2470e4f5e477d9d857ca9f" origin="Generated by Gradle"/>
451+
</artifact>
452+
</component>
448453
<component group="com.github.docker-java" name="docker-java-api" version="3.3.4">
449454
<artifact name="docker-java-api-3.3.4.jar">
450455
<sha256 value="650710c70160c1c651e4586a07e55c5f564436cf1f28d83737265ceb5d67696f" origin="Generated by Gradle"/>
@@ -832,9 +837,9 @@
832837
<sha256 value="9c823adc282e96b206956e4a63cb1552bb2bbcec6010bbb6aa9c3d18ecd3f915" origin="Generated by Gradle"/>
833838
</artifact>
834839
</component>
835-
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="8.3.5">
836-
<artifact name="shadow-gradle-plugin-8.3.5.jar">
837-
<sha256 value="54e08dd20a82775e3317a4725a1a5e4ec8b1b1c0f346de702a49d9ed4815b735" origin="Generated by Gradle"/>
840+
<component group="com.gradleup.shadow" name="shadow-gradle-plugin" version="9.0.1">
841+
<artifact name="shadow-gradle-plugin-9.0.1.jar">
842+
<sha256 value="5d421a5c6f0b436f46f3a73a1672ab28058489f3816ecd980aa17e9670a04f87" origin="Generated by Gradle"/>
838843
</artifact>
839844
</component>
840845
<component group="com.h2database" name="h2" version="1.4.197">
@@ -1307,6 +1312,11 @@
13071312
<sha256 value="675f60bd11a82d481736591fe4054c66471fa5463d45616652fd71585792ba87" origin="Generated by Gradle"/>
13081313
</artifact>
13091314
</component>
1315+
<component group="commons-io" name="commons-io" version="2.20.0">
1316+
<artifact name="commons-io-2.20.0.jar">
1317+
<sha256 value="df90bba0fe3cb586b7f164e78fe8f8f4da3f2dd5c27fa645f888100ccc25dd72" origin="Generated by Gradle"/>
1318+
</artifact>
1319+
</component>
13101320
<component group="commons-io" name="commons-io" version="2.4">
13111321
<artifact name="commons-io-2.4.jar">
13121322
<sha256 value="cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581" origin="Generated by Gradle"/>
@@ -2892,6 +2902,11 @@
28922902
<sha256 value="6e77bb229fc8dcaf09038beeb5e9030b22e9e01b51b458b0183ce669ebcc92ef" origin="Generated by Gradle"/>
28932903
</artifact>
28942904
</component>
2905+
<component group="org.apache.logging.log4j" name="log4j-api" version="2.25.1">
2906+
<artifact name="log4j-api-2.25.1.jar">
2907+
<sha256 value="20b9c77c0a9e54d1063a39e551dcaf98c7d8e7a4994648f84d0b9e14c71f7215" origin="Generated by Gradle"/>
2908+
</artifact>
2909+
</component>
28952910
<component group="org.apache.logging.log4j" name="log4j-core" version="2.17.1">
28962911
<artifact name="log4j-core-2.17.1.jar">
28972912
<sha256 value="c967f223487980b9364e94a7c7f9a8a01fd3ee7c19bdbf0b0f9f8cb8511f3d41" origin="Generated by Gradle"/>
@@ -2917,6 +2932,11 @@
29172932
<sha256 value="00bcf388472ca80a687014181763b66d777177f22cbbf179fd60e1b1ac9bc9b0" origin="Generated by Gradle"/>
29182933
</artifact>
29192934
</component>
2935+
<component group="org.apache.logging.log4j" name="log4j-core" version="2.25.1">
2936+
<artifact name="log4j-core-2.25.1.jar">
2937+
<sha256 value="78c232747855464b182f0abf78a99a22c88d4d270ff585343dab55576d7420e2" origin="Generated by Gradle"/>
2938+
</artifact>
2939+
</component>
29202940
<component group="org.apache.logging.log4j" name="log4j-jcl" version="2.19.0">
29212941
<artifact name="log4j-jcl-2.19.0.jar">
29222942
<sha256 value="47f768ffd66107a66f0c2a19445ab1e42ce6719a7f30f9aa9ef96157c83949fd" origin="Generated by Gradle"/>
@@ -3052,6 +3072,11 @@
30523072
<sha256 value="62a906edd2648bc173ba86301257d8490af71b986f0abe2323cd0e596402cce1" origin="Generated by Gradle"/>
30533073
</artifact>
30543074
</component>
3075+
<component group="org.apache.maven" name="maven-api-annotations" version="4.0.0-rc-3">
3076+
<artifact name="maven-api-annotations-4.0.0-rc-3.jar">
3077+
<sha256 value="5d3490f72ad3a7e82be88b27629f37c59fd2531bae511c3b13866420d5d862bd" origin="Generated by Gradle"/>
3078+
</artifact>
3079+
</component>
30553080
<component group="org.apache.maven" name="maven-api-meta" version="4.0.0-alpha-9">
30563081
<artifact name="maven-api-meta-4.0.0-alpha-9.jar">
30573082
<sha256 value="32c4f5cadbab680c34952f9cb570457a1383ccec4c9a57b0392607d7191c6949" origin="Generated by Gradle"/>
@@ -3062,6 +3087,11 @@
30623087
<sha256 value="29b2628d0f028119715916849c19eed45b32cdc67eb13551798c73afa4aa23d6" origin="Generated by Gradle"/>
30633088
</artifact>
30643089
</component>
3090+
<component group="org.apache.maven" name="maven-api-xml" version="4.0.0-rc-3">
3091+
<artifact name="maven-api-xml-4.0.0-rc-3.jar">
3092+
<sha256 value="f3e3b3642373c69d4c7441d40eba0765e1d744e992b62194452f5ea5451dfdba" origin="Generated by Gradle"/>
3093+
</artifact>
3094+
</component>
30653095
<component group="org.apache.maven" name="maven-archiver" version="3.5.1">
30663096
<artifact name="maven-archiver-3.5.1.jar">
30673097
<sha256 value="d0674469f8e6fbc866dbc5c955463d7629b7755ac7c87a235b9469d8257d6b8c" origin="Generated by Gradle"/>
@@ -3132,6 +3162,11 @@
31323162
<sha256 value="2d669935e1069c2e9566f3cc81dd5da80b170ac64d09597f6ef7de2f1ff1b149" origin="Generated by Gradle"/>
31333163
</artifact>
31343164
</component>
3165+
<component group="org.apache.maven" name="maven-xml" version="4.0.0-rc-3">
3166+
<artifact name="maven-xml-4.0.0-rc-3.jar">
3167+
<sha256 value="063c424cb47f75164125d5eea25167b931dd694e34268d50247374e74211dd19" origin="Generated by Gradle"/>
3168+
</artifact>
3169+
</component>
31353170
<component group="org.apache.maven" name="maven-xml-impl" version="4.0.0-alpha-9">
31363171
<artifact name="maven-xml-impl-4.0.0-alpha-9.jar">
31373172
<sha256 value="26e702b881d57ae4ee88d02c00940ba64063705ee69205ae8958bf839a8b06b1" origin="Generated by Gradle"/>
@@ -3555,6 +3590,11 @@
35553590
<sha256 value="069e78b537108dc6124a67073fc998264791f6b6499e955a38e72bb3e4fe1adf" origin="Generated by Gradle"/>
35563591
</artifact>
35573592
</component>
3593+
<component group="org.codehaus.plexus" name="plexus-xml" version="4.1.0">
3594+
<artifact name="plexus-xml-4.1.0.jar">
3595+
<sha256 value="86e6a7f07484e8b1f7af66d97d3ba3cb3d692a5461b4b1d0a2b7670cf5748e89" origin="Generated by Gradle"/>
3596+
</artifact>
3597+
</component>
35583598
<component group="org.codehaus.woodstox" name="stax2-api" version="4.2.1">
35593599
<artifact name="stax2-api-4.2.1.jar">
35603600
<sha256 value="678567e48b51a42c65c699f266539ad3d676d4b1a5b0ad7d89ece8b9d5772579" origin="Generated by Gradle"/>
@@ -4475,6 +4515,11 @@
44754515
<sha256 value="9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0" origin="Generated by Gradle"/>
44764516
</artifact>
44774517
</component>
4518+
<component group="org.ow2.asm" name="asm-commons" version="9.8">
4519+
<artifact name="asm-commons-9.8.jar">
4520+
<sha256 value="3301a1c1cb4c59fcc5292648dac1d7c5aed4c0f067dfbe88873b8cdfe77404f4" origin="Generated by Gradle"/>
4521+
</artifact>
4522+
</component>
44784523
<component group="org.ow2.asm" name="asm-tree" version="7.2">
44794524
<artifact name="asm-tree-7.2.jar">
44804525
<sha256 value="c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656" origin="Generated by Gradle"/>
@@ -4730,6 +4775,11 @@
47304775
<sha256 value="cdda03003fa9551315a4cc3fc163f18495f191b49a8f70a3aae232f049a7fdd0" origin="Generated by Gradle"/>
47314776
</artifact>
47324777
</component>
4778+
<component group="org.vafer" name="jdependency" version="2.13">
4779+
<artifact name="jdependency-2.13.jar">
4780+
<sha256 value="145c60864b236a7b1296550d31a49aa75ad612958138ee0d471b9fcb0bbedd3e" origin="Generated by Gradle"/>
4781+
</artifact>
4782+
</component>
47334783
<component group="org.vafer" name="jdependency" version="2.7.0">
47344784
<artifact name="jdependency-2.7.0.jar">
47354785
<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
@@ -116,6 +116,7 @@ tasks.named("shadowJar").configure {
116116
relocate("org.apache.hadoop", "fixture.hdfs3.org.apache.hadoop") {
117117
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
118118
exclude "org.apache.hadoop.ipc.StandbyException"
119+
exclude "org.apache.hadoop.application-classloader.properties"
119120
}
120121
configurations.add(project.configurations.hdfs3)
121122
}
@@ -124,6 +125,7 @@ def hdfs2Jar = tasks.register("hdfs2jar", ShadowJar) {
124125
relocate("org.apache.hadoop", "fixture.hdfs2.org.apache.hadoop") {
125126
exclude "org.apache.hadoop.hdfs.protocol.ClientProtocol"
126127
exclude "org.apache.hadoop.ipc.StandbyException"
128+
exclude "org.apache.hadoop.application-classloader.properties"
127129
}
128130
archiveClassifier.set("hdfs2")
129131
from sourceSets.main.output
@@ -141,6 +143,10 @@ tasks.withType(ShadowJar).configureEach {
141143
exclude(dependency('com.fasterxml.jackson.core:.*:.*'))
142144
}
143145

146+
filesMatching("META-INF/services/**") {
147+
duplicatesStrategy = DuplicatesStrategy.INCLUDE // Or something else.
148+
}
149+
144150
transform(org.elasticsearch.gradle.internal.shadow.XmlClassRelocationTransformer.class) {
145151
resource = "core-default.xml"
146152
enabled = true

0 commit comments

Comments
 (0)