Skip to content

Commit d105684

Browse files
committed
Fix an issue causing the registry cache to be ignored
Affects: https://ebce-lyrasis.atlassian.net/browse/PP-1855
1 parent e3348d1 commit d105684

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

simplified-accounts-source-nyplregistry/src/main/java/org/nypl/simplified/accounts/source/nyplregistry/AccountProviderSourceNYPLRegistry.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import org.nypl.simplified.accounts.source.spi.AccountProviderSourceResolutionSt
2525
import org.nypl.simplified.accounts.source.spi.AccountProviderSourceType
2626
import org.nypl.simplified.accounts.source.spi.AccountProviderSourceType.SourceResult
2727
import org.nypl.simplified.files.FileUtilities
28+
import org.nypl.simplified.links.Link
2829
import org.nypl.simplified.opds.auth_document.api.AuthenticationDocumentParsersType
2930
import org.nypl.simplified.parser.api.ParseResult
3031
import org.nypl.simplified.taskrecorder.api.TaskResult
@@ -35,6 +36,7 @@ import java.io.FileNotFoundException
3536
import java.io.IOException
3637
import java.io.InputStream
3738
import java.net.URI
39+
import java.time.OffsetDateTime
3840

3941
/**
4042
* A server-based account provider.
@@ -106,8 +108,10 @@ class AccountProviderSourceNYPLRegistry(
106108
this.fetchServerResults(includeTestingLibraries)
107109
val mergedResults =
108110
this.mergeResults(diskResults, serverResults)
111+
val target =
112+
this.decideRegistryURI(includeTestingLibraries)
109113

110-
this.cacheServerResults(files, mergedResults)
114+
this.cacheServerResults(files, target, mergedResults)
111115
SourceResult.SourceSucceeded(mergedResults)
112116
} catch (e: Exception) {
113117
this.logger.debug("failed to fetch providers: ", e)
@@ -191,6 +195,7 @@ class AccountProviderSourceNYPLRegistry(
191195

192196
private fun cacheServerResults(
193197
cacheFiles: CacheFiles,
198+
target: URI,
194199
mergedResults: Map<URI, AccountProviderDescription>
195200
) {
196201
try {
@@ -203,7 +208,7 @@ class AccountProviderSourceNYPLRegistry(
203208
val collection =
204209
AccountProviderDescriptionCollection(
205210
providers = mergedResults.values.toList(),
206-
links = listOf(),
211+
links = listOf(Link.LinkBasic(href = target, relation = "self")),
207212
metadata = meta
208213
)
209214
val serializer =
@@ -231,6 +236,8 @@ class AccountProviderSourceNYPLRegistry(
231236
private fun fetchDiskResults(cacheFiles: CacheFiles): Map<URI, AccountProviderDescription> {
232237
this.logger.debug("fetching disk cache: {}", cacheFiles.file)
233238

239+
val timeThen = OffsetDateTime.now()
240+
234241
return try {
235242
cacheFiles.file.inputStream().use { stream ->
236243
val parser =
@@ -266,6 +273,11 @@ class AccountProviderSourceNYPLRegistry(
266273
} catch (e: Exception) {
267274
this.logger.debug("could not load cache file: ", e)
268275
emptyMap()
276+
} finally {
277+
val timeNow = OffsetDateTime.now()
278+
this.logger.debug(
279+
"processed cached providers in {}", java.time.Duration.between(timeThen, timeNow)
280+
)
269281
}
270282
}
271283

0 commit comments

Comments
 (0)