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

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

The newest version!
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)
        })

    @JvmStatic
    operator fun get(file: File): Artifact = cache[file.canonicalFile]

    @JvmStatic
    fun invalidate(file: File) {
        val normalizedFile = file.canonicalFile
        logger.debug("Invalidating artifacts cache for {}", normalizedFile)
        cache.invalidate(normalizedFile)
    }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy