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);