Skip to content
Snippets Groups Projects
Commit 77d50099 authored by Rustam Lotsmanenko (EPAM)'s avatar Rustam Lotsmanenko (EPAM)
Browse files

Merge branch 'fix-recursive-get-subscription' into 'master'

Fixed getting subscription

See merge request !420
parents b4eea0f6 11d34285
No related branches found
No related tags found
1 merge request!420Fixed getting subscription
Pipeline #208506 passed
......@@ -50,12 +50,17 @@ public class ExternalSubscriptionsManager {
List<Subscription> cachedInfos = Optional.ofNullable(getExternalSubscriptions(dataPartitionId))
.orElseThrow(() -> new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Server error", "OQM | Subscription info cache was not initialized"))
.getSubscriptions();
List<Subscription> filteredCachedInfos = filterSubscriptionInfosByTopic(cachedInfos, subscriptionId, serviceTopic);
if (filteredCachedInfos.isEmpty()) {
return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, cachedInfos);
return getFilteredSubscription(cachedInfos, dataPartitionId, subscriptionId, serviceTopic);
}
private Subscription getFilteredSubscription(List<Subscription> subscriptions, String dataPartitionId,
String subscriptionId, String serviceTopic) {
List<Subscription> filteredInfos = filterSubscriptionInfosByTopic(subscriptions, subscriptionId, serviceTopic);
if (filteredInfos.isEmpty()) {
return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, subscriptions);
} else {
log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredCachedInfos.size());
return filteredCachedInfos.get(0);
log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredInfos.size());
return filteredInfos.get(0);
}
}
......@@ -72,7 +77,7 @@ public class ExternalSubscriptionsManager {
private void reloadSubscriptionInfoCache(String dataPartitionId) {
List<Subscription> subscriptionInfos = subscriptionHandler.getAllSubscriptionInfos(dataPartitionId);
List<Subscription> enrichedSubscriptionInfos = subscriptionInfos.stream()
.map(subscription -> getSubscription(dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
.map(subscription -> getFilteredSubscription(subscriptionInfos, dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
.collect(Collectors.toList());
subscriptionInfoCache.put(dataPartitionId, ExternalSubscriptions.builder().subscriptions(enrichedSubscriptionInfos).build());
log.debug("Subscription info cache PRELOADED for tenant: {}. Size is: {}.", dataPartitionId, enrichedSubscriptionInfos.size());
......@@ -102,4 +107,4 @@ public class ExternalSubscriptionsManager {
.filter(info -> serviceTopic.equals(info.getTopic()) && subscriptionId.equals(info.getNotificationId()))
.collect(Collectors.toList());
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment