X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Ftasks%2FRicSynchronizationTask.java;h=3879fd6870e755ea39ad70dd0a9ed78e3dad0202;hb=refs%2Fchanges%2F57%2F3057%2F3;hp=9d25fa34f25b05c230739ea294e3b870f2cac019;hpb=14accd2e91460d1651fe2c228fe1ba964cbfb6a6;p=nonrtric.git
diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java
index 9d25fa34..3879fd68 100644
--- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java
+++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java
@@ -22,12 +22,15 @@ package org.oransc.policyagent.tasks;
import static org.oransc.policyagent.repository.Ric.RicState;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Vector;
import org.oransc.policyagent.clients.A1Client;
import org.oransc.policyagent.clients.A1ClientFactory;
import org.oransc.policyagent.clients.AsyncRestClient;
import org.oransc.policyagent.repository.ImmutablePolicyType;
+import org.oransc.policyagent.repository.Lock;
import org.oransc.policyagent.repository.Lock.LockType;
import org.oransc.policyagent.repository.Policies;
import org.oransc.policyagent.repository.Policy;
@@ -39,6 +42,7 @@ import org.oransc.policyagent.repository.Services;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import reactor.core.publisher.BaseSubscriber;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -54,6 +58,7 @@ import reactor.core.publisher.Mono;
*
* Notify subscribing services
*/
+@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally
public class RicSynchronizationTask {
private static final Logger logger = LoggerFactory.getLogger(RicSynchronizationTask.class);
@@ -71,7 +76,7 @@ public class RicSynchronizationTask {
this.services = services;
}
- @SuppressWarnings("squid:S2629")
+ @SuppressWarnings("squid:S2445") // Blocks should be synchronized on "private final" fields
public void run(Ric ric) {
logger.debug("Handling ric: {}", ric.getConfig().name());
@@ -84,25 +89,32 @@ public class RicSynchronizationTask {
}
ric.getLock().lock(LockType.EXCLUSIVE) // Make sure no NBI updates are running
- .flatMap(lock -> lock.unlock()) //
+ .flatMap(Lock::unlock) //
.flatMap(lock -> this.a1ClientFactory.createA1Client(ric)) //
.flatMapMany(client -> startSynchronization(ric, client)) //
- .subscribe(x -> logger.debug("Synchronize: {}", x), //
- throwable -> onSynchronizationError(ric, throwable), //
- () -> onSynchronizationComplete(ric));
+ .subscribe(new BaseSubscriber