X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2Frepository%2FInfoTypeSubscriptions.java;h=533199ff6e42d56c9281b3a056b576515884996b;hb=0f6367023720ecc7d7b4b38cbbc4282792172a89;hp=60fe35f39452d73a8f1c852dde3c6ae18c148e58;hpb=b0612ab177e14ffa133aae2538aa504d5cc10e99;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/InfoTypeSubscriptions.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/InfoTypeSubscriptions.java index 60fe35f3..533199ff 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/InfoTypeSubscriptions.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/InfoTypeSubscriptions.java @@ -47,6 +47,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpStatus; import org.springframework.util.FileSystemUtils; import reactor.core.publisher.Flux; @@ -99,8 +100,7 @@ public class InfoTypeSubscriptions { } public synchronized void put(SubscriptionInfo subscription) { - allSubscriptions.put(subscription.getId(), subscription); - subscriptionsByOwner.put(subscription.owner, subscription.id, subscription); + doPut(subscription); storeInFile(subscription); logger.debug("Added type status subscription {}", subscription.id); } @@ -119,7 +119,7 @@ public class InfoTypeSubscriptions { public synchronized SubscriptionInfo getSubscription(String id) throws ServiceException { SubscriptionInfo p = allSubscriptions.get(id); if (p == null) { - throw new ServiceException("Could not find Information subscription: " + id); + throw new ServiceException("Could not find Information subscription: " + id, HttpStatus.NOT_FOUND); } return p; } @@ -197,7 +197,8 @@ public class InfoTypeSubscriptions { private Mono error() { return Mono.error(new ServiceException( - "No notifyTypeRegistered handler found for interface version " + apiVersion)); + "No notifyTypeRegistered handler found for interface version " + apiVersion, + HttpStatus.INTERNAL_SERVER_ERROR)); } }; } @@ -221,8 +222,7 @@ public class InfoTypeSubscriptions { private Mono notifySubscriber(Function> notifyFunc, SubscriptionInfo subscriptionInfo) { Retry retrySpec = Retry.backoff(3, Duration.ofSeconds(1)); - return Mono.just(1) // - .flatMap(notUsed -> notifyFunc.apply(subscriptionInfo)) // + return notifyFunc.apply(subscriptionInfo) // .retryWhen(retrySpec) // .onErrorResume(throwable -> { logger.warn("Consumer callback failed {}, removing subscription {}", throwable.getMessage(), @@ -259,10 +259,15 @@ public class InfoTypeSubscriptions { for (File file : dbDir.listFiles()) { String json = Files.readString(file.toPath()); SubscriptionInfo subscription = gson.fromJson(json, SubscriptionInfo.class); - this.allSubscriptions.put(subscription.getId(), subscription); + doPut(subscription); } } + private void doPut(SubscriptionInfo subscription) { + allSubscriptions.put(subscription.getId(), subscription); + subscriptionsByOwner.put(subscription.owner, subscription.id, subscription); + } + private File getFile(SubscriptionInfo subscription) { return getPath(subscription).toFile(); }