Fix OSGiDOMSchemaService 05/109805/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 16 Jan 2024 17:27:53 +0000 (18:27 +0100)
committerRobert Varga <nite@hq.sk>
Tue, 16 Jan 2024 19:28:26 +0000 (19:28 +0000)
The conversion here got confused and has broken listeners -- these are
published through OSGi SR, so we failed to pick them up from SR.

Change-Id: I71ce644584ea3efbe6465aaff4c33d876e951e05
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/OSGiDOMSchemaService.java

index 013fc91e6c0c07c0c26bd104da3de0370f284516..d55f6a2f123e93319f07c25472c756a3f787029e 100644 (file)
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
 public final class OSGiDOMSchemaService implements DOMSchemaService, DOMSchemaService.YangTextSourceExtension {
     private static final Logger LOG = LoggerFactory.getLogger(OSGiDOMSchemaService.class);
 
-    private final List<Consumer<EffectiveModelContext>> listeners = new CopyOnWriteArrayList<>();
+    private final List<ModelContextListener> listeners = new CopyOnWriteArrayList<>();
     private final AtomicReference<ModuleInfoSnapshot> currentSnapshot = new AtomicReference<>();
     private final ComponentFactory<ModelContextListener> listenerFactory;
 
@@ -88,13 +88,13 @@ public final class OSGiDOMSchemaService implements DOMSchemaService, DOMSchemaSe
 
     @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC,
             policyOption = ReferencePolicyOption.GREEDY)
-    void addListener(final Consumer<EffectiveModelContext> listener) {
+    void addListener(final ModelContextListener listener) {
         LOG.trace("Adding listener {}", listener);
         listeners.add(listener);
-        listener.accept(getGlobalContext());
+        listener.onModelContextUpdated(getGlobalContext());
     }
 
-    void removeListener(final Consumer<EffectiveModelContext> listener) {
+    void removeListener(final ModelContextListener listener) {
         LOG.trace("Removing listener {}", listener);
         listeners.remove(listener);
     }
@@ -126,9 +126,9 @@ public final class OSGiDOMSchemaService implements DOMSchemaService, DOMSchemaSe
 
     @SuppressWarnings("checkstyle:illegalCatch")
     private static void notifyListener(final @NonNull EffectiveModelContext modelContext,
-            final Consumer<EffectiveModelContext> listener) {
+            final ModelContextListener listener) {
         try {
-            listener.accept(modelContext);
+            listener.onModelContextUpdated(modelContext);
         } catch (RuntimeException e) {
             LOG.warn("Failed to notify listener {}", listener, e);
         }