From 3978445779d86de1a3b9f603005b9dd183913198 Mon Sep 17 00:00:00 2001 From: Vitaliy Kondratiev Date: Tue, 17 Nov 2020 16:59:08 -0500 Subject: [PATCH 1/3] open LruNormalizedCache and expose a method --- .../normalized/lru/LruNormalizedCache.kt | 4 +++- .../normalized/lru/LruNormalizedCacheTest.kt | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt b/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt index c16c8445506..e4144a12088 100644 --- a/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt +++ b/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt @@ -18,7 +18,7 @@ import kotlin.reflect.KClass * * A common configuration is to have secondary SQL cache. */ -class LruNormalizedCache internal constructor(evictionPolicy: EvictionPolicy) : NormalizedCache() { +open class LruNormalizedCache internal constructor(evictionPolicy: EvictionPolicy) : NormalizedCache() { private val lruCache: Cache = CacheBuilder.newBuilder().apply { @@ -97,4 +97,6 @@ class LruNormalizedCache internal constructor(evictionPolicy: EvictionPolicy) : put(this@LruNormalizedCache::class, lruCache.asMap()) putAll(nextCache?.dump().orEmpty()) } + + fun getFromCacheIfPresent(key: String): Record? = lruCache.getIfPresent(key) } diff --git a/apollo-normalized-cache/src/test/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCacheTest.kt b/apollo-normalized-cache/src/test/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCacheTest.kt index 3256471799a..be3d0d2d05c 100644 --- a/apollo-normalized-cache/src/test/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCacheTest.kt +++ b/apollo-normalized-cache/src/test/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCacheTest.kt @@ -7,6 +7,8 @@ import com.apollographql.apollo.cache.normalized.NormalizedCache import com.apollographql.apollo.cache.normalized.Record import com.apollographql.apollo.cache.normalized.RecordFieldJsonAdapter import com.google.common.truth.Truth.assertThat +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull import org.junit.Test import java.util.concurrent.TimeUnit @@ -248,6 +250,25 @@ class LruNormalizedCacheTest { assertThat(record2).isNull() } + @Test + fun test_getFromCacheIfPresent() { + val lruCache = createLruNormalizedCache() + val testRecord1 = createTestRecord("1") + val testRecordSet: MutableCollection = HashSet() + testRecordSet.add(testRecord1) + lruCache.merge(testRecordSet, CacheHeaders.NONE) + assertEquals(testRecord1, lruCache.getFromCacheIfPresent("key1")) + + val testRecord2 = createTestRecord("2") + lruCache.merge(testRecord2, CacheHeaders.NONE) + + assertEquals(testRecord2, lruCache.getFromCacheIfPresent("key2")) + + val testRecord3 = createTestRecord("2") + lruCache.merge(testRecord3, builder().addHeader(ApolloCacheHeaders.DO_NOT_STORE, "true").build()) + assertNull(lruCache.getFromCacheIfPresent("key3")) + } + private fun createLruNormalizedCache() = LruNormalizedCacheFactory(EvictionPolicy.builder().maxSizeBytes(10 * 1024.toLong()).build()).create(basicFieldAdapter) From 653b2ce2a52d7974e9e7d0e81107c3484dbada4c Mon Sep 17 00:00:00 2001 From: Vitaliy Kondratiev Date: Tue, 17 Nov 2020 18:13:39 -0500 Subject: [PATCH 2/3] try snapshot --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 302694ac46c..d1d0589baaa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -103,7 +103,7 @@ subprojects { val downloadBaselineJarTaskProvider = tasks.register("downloadBaseLineJar", DownloadFileTask::class.java) { val group = project.property("GROUP") as String val artifact = project.property("POM_ARTIFACT_ID") as String - val version = "1.2.1" + val version = "1.2.1-SNAPSHOT" val jar = "$artifact-$version.jar" url.set("https://jcenter.bintray.com/${group.replace(".", "/")}/$artifact/$version/$jar") From ffef977bb9af8b3cab852b299f79772e61b1c11e Mon Sep 17 00:00:00 2001 From: Vitaliy Kondratiev Date: Wed, 18 Nov 2020 12:16:21 -0500 Subject: [PATCH 3/3] remove internal constructor --- .../apollo/cache/normalized/lru/LruNormalizedCache.kt | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt b/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt index e4144a12088..af194b5de11 100644 --- a/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt +++ b/apollo-normalized-cache/src/main/java/com/apollographql/apollo/cache/normalized/lru/LruNormalizedCache.kt @@ -18,7 +18,7 @@ import kotlin.reflect.KClass * * A common configuration is to have secondary SQL cache. */ -open class LruNormalizedCache internal constructor(evictionPolicy: EvictionPolicy) : NormalizedCache() { +open class LruNormalizedCache constructor(evictionPolicy: EvictionPolicy) : NormalizedCache() { private val lruCache: Cache = CacheBuilder.newBuilder().apply { diff --git a/build.gradle.kts b/build.gradle.kts index d1d0589baaa..302694ac46c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -103,7 +103,7 @@ subprojects { val downloadBaselineJarTaskProvider = tasks.register("downloadBaseLineJar", DownloadFileTask::class.java) { val group = project.property("GROUP") as String val artifact = project.property("POM_ARTIFACT_ID") as String - val version = "1.2.1-SNAPSHOT" + val version = "1.2.1" val jar = "$artifact-$version.jar" url.set("https://jcenter.bintray.com/${group.replace(".", "/")}/$artifact/$version/$jar")