Separate plugins for different Gradle APIs

This commit is contained in:
Tad Fisher
2024-06-04 13:11:18 -07:00
parent a935331795
commit 85cebdd557
40 changed files with 1258 additions and 3993 deletions

View File

@@ -0,0 +1,7 @@
package org.nixos.gradle2nix
abstract class Gradle2NixPlugin : AbstractGradle2NixPlugin(
GradleCacheAccessFactoryG81,
DependencyExtractorApplierG8,
ResolveAllArtifactsApplierG8,
)

View File

@@ -0,0 +1,18 @@
package org.nixos.gradle2nix
import org.gradle.api.internal.artifacts.ivyservice.ArtifactCachesProvider
import org.gradle.api.invocation.Gradle
object GradleCacheAccessFactoryG81 : GradleCacheAccessFactory {
override fun create(gradle: Gradle): GradleCacheAccess {
return GradleCacheAccessG81(gradle)
}
}
class GradleCacheAccessG81(gradle: Gradle) : GradleCacheAccess {
private val artifactCachesProvider = gradle.service<ArtifactCachesProvider>()
override fun useCache(block: () -> Unit) {
artifactCachesProvider.writableCacheAccessCoordinator.useCache(block)
}
}