All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.gradle_plugins.dsl.artifact.ArtifactsCache.kt Maven / Gradle / Ivy

package name.remal.gradle_plugins.dsl.artifact

import com.google.common.cache.CacheBuilder
import com.google.common.cache.CacheLoader
import com.google.common.cache.LoadingCache
import name.remal.gradle_plugins.dsl.utils.getGradleLogger
import java.io.File

object ArtifactsCache {

    @JvmStatic
    private val logger = getGradleLogger(ArtifactsCache::class.java)

    private val cache: LoadingCache = CacheBuilder.newBuilder()
        .build(object : CacheLoader() {
            override fun load(file: File) = Artifact(file)
        })

    operator fun get(file: File): Artifact = cache[file.absoluteFile]

    fun invalidate(file: File) {
        logger.debug("Invalidating artifacts cache for {}", file)
        cache.invalidate(file)
    }

    fun invalidateAll() {
        logger.debug("Invalidating whole artifacts cache")
        cache.invalidateAll()
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy