From eff83bf6c810b691710dfa4f5060525fe89fc315 Mon Sep 17 00:00:00 2001 From: siarhei-charniak Date: Wed, 29 Nov 2023 15:59:07 +0300 Subject: [PATCH] EDGOAIPMH-107 - Update edge-common version (#105) (cherry picked from commit 91c2db77878fe19425157bee40d242261106cd6e) --- pom.xml | 2 +- .../org/folio/edge/oaipmh/OaiPmhHandler.java | 33 +++---------------- .../org/folio/edge/oaipmh/OaiPmhTest.java | 3 ++ .../utils/ConsortiaTenantClientTest.java | 3 ++ 4 files changed, 11 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index c61c636..1f6c644 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 2.3.6 4.0.0 5.9.1 - 4.4.3 + 4.5.2 4.3.8 2.17.2 4.6.1 diff --git a/src/main/java/org/folio/edge/oaipmh/OaiPmhHandler.java b/src/main/java/org/folio/edge/oaipmh/OaiPmhHandler.java index 79ad26f..04a48d1 100644 --- a/src/main/java/org/folio/edge/oaipmh/OaiPmhHandler.java +++ b/src/main/java/org/folio/edge/oaipmh/OaiPmhHandler.java @@ -67,7 +67,6 @@ public class OaiPmhHandler extends Handler { private static final String ERROR_FROM_REPOSITORY = "Error in the response from repository: status code - %s, response status message - %s %s"; private Cache> tenantsCache; - private Cache clientCache; public OaiPmhHandler(SecureStore secureStore, OkapiClientFactory ocf) { super(secureStore, ocf); @@ -76,11 +75,6 @@ public OaiPmhHandler(SecureStore secureStore, OkapiClientFactory ocf) { .withNullValueTTL(0) .withCapacity(100) .build(); - clientCache = new Cache.Builder() - .withTTL(TimeUnit.MINUTES.toMillis(10)) - .withNullValueTTL(0) - .withCapacity(100) - .build(); } protected void handle(RoutingContext ctx) { @@ -174,22 +168,6 @@ private void callToTenant(RoutingContext ctx, String tenant) { throwable -> oaiPmhFailureHandler(ctx, throwable))); } - private CompletableFuture getClient(RoutingContext ctx, String tenant) { - var client = clientCache.get(tenant); - if (isNull(client)) { - log.info("Okapi client for tenant {} is not present in cache, creating new one", tenant); - var newClient = ocf.getOkapiClient(tenant); - return getToken(ctx, tenant, newClient) - .thenApply(token -> { - newClient.setToken(token); - clientCache.put(tenant, newClient); - return newClient; - }); - } - log.info("Using cached okapi client for tenant {}", tenant); - return CompletableFuture.completedFuture(client); - } - private Optional getNextTenant(List list, String currentTenantId) { log.info("Tenants list: {}", list); var nextTenantIndex = list.indexOf(currentTenantId) + 1; @@ -387,11 +365,6 @@ private boolean isFirstRequest(HttpServerRequest request) { return isNull(request.params().get(RESUMPTION_TOKEN)); } - private CompletableFuture getToken(RoutingContext ctx, String tenant, OkapiClient client) { - return getClientInfo(ctx) - .thenCompose(clientInfo -> iuHelper.getToken(client, clientInfo.salt, tenant, clientInfo.username)); - } - private boolean isLastResponse(OAIPMH oaipmh) { return (nonNull(oaipmh.getListRecords()) && (isNull(oaipmh.getListRecords().getResumptionToken()) || oaipmh.getListRecords().getResumptionToken().getValue().isEmpty())) || (nonNull(oaipmh.getListIdentifiers()) && (isNull(oaipmh.getListIdentifiers().getResumptionToken()) || oaipmh.getListIdentifiers().getResumptionToken().getValue().isEmpty())); @@ -401,7 +374,7 @@ private boolean isErrorResponse(OAIPMH oaipmh) { return isNotEmpty(oaipmh.getErrors()); } - private CompletableFuture getClientInfo(RoutingContext ctx) { + private CompletableFuture getClient(RoutingContext ctx, String tenantId) { var key = keyHelper.getApiKey(ctx); ClientInfo clientInfo; try { @@ -409,6 +382,8 @@ private CompletableFuture getClientInfo(RoutingContext ctx) { } catch (ApiKeyUtils.MalformedApiKeyException e) { return CompletableFuture.failedFuture(e); } - return CompletableFuture.completedFuture(clientInfo); + final OkapiClient client = ocf.getOkapiClient(tenantId); + return iuHelper.fetchToken(client, clientInfo.salt, tenantId, clientInfo.username) + .map(token -> client).toCompletionStage().toCompletableFuture(); } } diff --git a/src/test/java/org/folio/edge/oaipmh/OaiPmhTest.java b/src/test/java/org/folio/edge/oaipmh/OaiPmhTest.java index 3c047f2..f125c8d 100644 --- a/src/test/java/org/folio/edge/oaipmh/OaiPmhTest.java +++ b/src/test/java/org/folio/edge/oaipmh/OaiPmhTest.java @@ -73,10 +73,13 @@ static void setUpOnce(Vertx vertx, VertxTestContext context) throws Exception { List knownTenants = new ArrayList<>(); knownTenants.add(ApiKeyUtils.parseApiKey(API_KEY).tenantId); knownTenants.add("central"); + knownTenants.add("central2"); knownTenants.add("tenant1"); knownTenants.add("tenant2"); knownTenants.add("tenant3"); + knownTenants.add("tenant4"); knownTenants.add("tenant5"); + knownTenants.add("tenant6"); System.setProperty(SYS_PORT, String.valueOf(serverPort)); System.setProperty(SYS_OKAPI_URL, "http://localhost:" + okapiPort); diff --git a/src/test/java/org/folio/edge/oaipmh/utils/ConsortiaTenantClientTest.java b/src/test/java/org/folio/edge/oaipmh/utils/ConsortiaTenantClientTest.java index e6e7527..c1d0ff1 100644 --- a/src/test/java/org/folio/edge/oaipmh/utils/ConsortiaTenantClientTest.java +++ b/src/test/java/org/folio/edge/oaipmh/utils/ConsortiaTenantClientTest.java @@ -38,6 +38,9 @@ void setUp(Vertx vertx, VertxTestContext context) { List knownTenants = new ArrayList<>(); knownTenants.add(TENANT_DIKU); + knownTenants.add(TENANT_CENTRAL); + knownTenants.add(TENANT_CONSORTIA); + knownTenants.add(TENANT_EMPTY_CONSORTIA); factory = new OaiPmhOkapiClientFactory(vertx, "http://localhost:" + okapiPort, REQUEST_TIMEOUT);