plugins {
    id("gradlebuild.distribution.implementation-java")
}

description = "Internal build cache configuration and controller implementations"

dependencies {
    api(projects.baseServices)
    api(projects.buildCache)
    api(projects.buildCacheBase)
    api(projects.buildCacheLocal)
    api(projects.buildCachePackaging)
    api(projects.buildCacheSpi)
    api(projects.buildOperations)
    api(projects.concurrent)
    api(projects.coreApi)
    api(projects.files)
    api(projects.fileTemp)
    api(projects.modelCore)
    api(projects.persistentCache)
    api(projects.scopedPersistentCache)
    api(projects.startParameter)
    api(projects.stdlibJavaExtensions)

    api(libs.inject)
    api(libs.jspecify)

    implementation(projects.enterpriseOperations)
    implementation(projects.loggingApi)
    implementation(projects.snapshots)
    implementation(projects.time)

    implementation(libs.commonsIo)
    implementation(libs.guava)
    implementation(libs.slf4jApi)

    testImplementation(projects.internalTesting)
    testImplementation(testFixtures(projects.baseServices))
    testImplementation(testFixtures(projects.core))
    testImplementation(testFixtures(projects.time))

    integTestImplementation(projects.internalIntegTesting)

    integTestDistributionRuntimeOnly(projects.distributionsJvm) {
        because("Integration tests require HttpBuildCache registration from build-cache-http, which is in distributions-jvm.")
    }
}

gradleModule {
    computedRuntimes {
        // Auto-generated by `:checkTargetRuntimes --fix`
        client = true
        daemon = true
        worker = true
    }
}

errorprone {
    nullawayEnabled = false
}
