Skip to content

Commit 59dc981

Browse files
Gradle 8.13 (#15)
Method signature of listModuleVersions changed gradle/gradle@7f120d8
1 parent bb5e654 commit 59dc981

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

build.gradle

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,23 @@ tasks.register('transformJar', JarTransformationTask) {
8787
}
8888

8989
addTransformer('net/minecraftforge/artifactural/gradle/GradleRepositoryAdapter$1$1') { clazz ->
90+
// Gradle [8.13) - listModuleVersions add delegate call
91+
{
92+
final mtd = 'listModuleVersions'
93+
final desc = '(Lorg/gradle/api/artifacts/component/ModuleComponentSelector;Lorg/gradle/internal/component/model/ComponentOverrideMetadata;Lorg/gradle/internal/resolve/result/BuildableModuleVersionListingResolveResult;)V'
94+
95+
clazz.methods.find { it.name == mtd && it.desc == desc }?.tap {
96+
it.instructions.clear()
97+
it.instructions.add(new VarInsnNode(Opcodes.ALOAD, 0))
98+
it.instructions.add(new FieldInsnNode(Opcodes.GETFIELD, 'net/minecraftforge/artifactural/gradle/GradleRepositoryAdapter$1$1', 'val$delegate', 'Lorg/gradle/api/internal/artifacts/ivyservice/ivyresolve/ModuleComponentRepositoryAccess;'))
99+
it.instructions.add(new VarInsnNode(Opcodes.ALOAD, 1))
100+
it.instructions.add(new VarInsnNode(Opcodes.ALOAD, 2))
101+
it.instructions.add(new VarInsnNode(Opcodes.ALOAD, 3))
102+
it.instructions.add(new MethodInsnNode(Opcodes.INVOKEINTERFACE, 'org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ModuleComponentRepositoryAccess', 'listModuleVersions', '(Lorg/gradle/api/artifacts/component/ModuleComponentSelector;Lorg/gradle/internal/component/model/ComponentOverrideMetadata;Lorg/gradle/internal/resolve/result/BuildableModuleVersionListingResolveResult;)V'))
103+
it.instructions.add(new InsnNode(Opcodes.RETURN))
104+
}
105+
}
106+
90107
// Gradle [8.9) - resolveArtifactsWithType changed parameter types
91108
{
92109
final mtd = 'resolveArtifactsWithType'

src/gradlecomp/java/net/minecraftforge/artifactural/gradle/GradleRepositoryAdapter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.gradle.api.artifacts.ComponentMetadataSupplierDetails;
3030
import org.gradle.api.artifacts.component.ComponentArtifactIdentifier;
3131
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
32+
import org.gradle.api.artifacts.component.ModuleComponentSelector;
3233
import org.gradle.api.artifacts.dsl.RepositoryHandler;
3334
import org.gradle.api.internal.artifacts.BaseRepositoryFactory;
3435
import org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentResolvers;
@@ -256,6 +257,14 @@ public void listModuleVersions(ModuleDependencyMetadata dependency, BuildableMod
256257
delegate.listModuleVersions(dependency, result);
257258
}
258259

260+
// DO NOT TOUCH
261+
// Gradle 8.13 changed the first argument from ModuleDependencyMetadata to ModuleComponentSelector and added a new argument ComponentOverrideMetadata
262+
// https://github.com/gradle/gradle/commit/7f120d813df21b0d24f403180629f51ba0f8ee4c
263+
@SuppressWarnings("unused")
264+
public void listModuleVersions(ModuleComponentSelector selector, ComponentOverrideMetadata overrideMetadata, BuildableModuleVersionListingResolveResult result) {
265+
//ASM in build.gradle adds the delegate call
266+
}
267+
259268
@Override
260269
public void resolveArtifactsWithType(ComponentResolveMetadata component, ArtifactType artifactType, BuildableArtifactSetResolveResult result) {
261270
delegate.resolveArtifactsWithType(component, artifactType, result);

0 commit comments

Comments
 (0)