Adjust DOMMountPoint to be EffectiveModelContextProvider 93/89293/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 22 Apr 2020 19:44:14 +0000 (21:44 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 22 Apr 2020 20:45:11 +0000 (22:45 +0200)
SchemaContext does not cut it here. We really should not have this
at all and should rely on DOMSchemaService being present, but that
refactor has to wait for another breaking release.

JIRA: MDSAL-435
Change-Id: I3182b0cda7809cf7b90fe0a05413a9b88541bfb6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPoint.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPointService.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImplTest.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPoint.java
dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPointTest.java

index e1876077032f96c16af31b1bd3d61cb9f35cdd61..55bde3d8157061d30e0896cc1c9e5372c4914d8a 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.mdsal.dom.api;
 import java.util.Optional;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
 
-public interface DOMMountPoint extends Identifiable<YangInstanceIdentifier> {
+// FIXME: 7.0.0: EffectiveModelContextProvider is probably not accurate here -- we really want to unify access via
+//               DOMSchemaService and that in turn needs to account for NMDA
+public interface DOMMountPoint extends Identifiable<YangInstanceIdentifier>, EffectiveModelContextProvider {
 
     <T extends DOMService> Optional<T> getService(Class<T> cls);
-
-    SchemaContext getSchemaContext();
 }
index 8b3b7dc58277793d55e6944e8950c6de1a07f2a5..f4b6499ccd4ca9245c1251ddfcbe3c10c7dfca82 100644 (file)
@@ -12,8 +12,7 @@ import java.util.Optional;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public interface DOMMountPointService extends DOMService {
 
@@ -27,7 +26,7 @@ public interface DOMMountPointService extends DOMService {
 
         <T extends DOMService> DOMMountPointBuilder addService(Class<T> type,T impl);
 
-        DOMMountPointBuilder addInitialSchemaContext(SchemaContext ctx);
+        DOMMountPointBuilder addInitialSchemaContext(EffectiveModelContext ctx);
 
         ObjectRegistration<DOMMountPoint> register();
     }
index 122f691555cf58e28c478f984a14d57d371d097d..ce0012815f70c51db4b5ae7bdcb56c6148c60071 100644 (file)
@@ -27,7 +27,7 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.util.ListenerRegistry;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
@@ -121,7 +121,7 @@ public final class DOMMountPointServiceImpl implements DOMMountPointService {
 
         private final MutableClassToInstanceMap<DOMService> services = MutableClassToInstanceMap.create();
         private final YangInstanceIdentifier path;
-        private SchemaContext schemaContext;
+        private EffectiveModelContext schemaContext;
 
         private SimpleDOMMountPoint mountPoint;
 
@@ -136,7 +136,7 @@ public final class DOMMountPointServiceImpl implements DOMMountPointService {
         }
 
         @Override
-        public DOMMountPointBuilder addInitialSchemaContext(final SchemaContext ctx) {
+        public DOMMountPointBuilder addInitialSchemaContext(final EffectiveModelContext ctx) {
             schemaContext = requireNonNull(ctx);
             return this;
         }
index 1a366b44c1d2a0cd7a95dce06603ba468e65a7cb..a4719b30bbbfee59d18abd78db6ee649c3a204c6 100644 (file)
@@ -10,8 +10,8 @@ package org.opendaylight.mdsal.dom.broker;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
@@ -25,7 +25,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public class DOMMountPointServiceImplTest {
 
@@ -49,7 +49,7 @@ public class DOMMountPointServiceImplTest {
         // Create a mount point with schema context and a DOMService
         final DOMMountPointBuilder mountPointBuilder = mountPointService.createMountPoint(PATH);
 
-        final SchemaContext schemaContext = mock(SchemaContext.class);
+        final EffectiveModelContext schemaContext = mock(EffectiveModelContext.class);
         mountPointBuilder.addInitialSchemaContext(schemaContext);
 
         final DOMRpcService rpcService = mock(DOMRpcService.class);
@@ -75,7 +75,8 @@ public class DOMMountPointServiceImplTest {
         doNothing().when(mountPointListener).onMountPointRemoved(PATH);
 
         final ObjectRegistration<DOMMountPoint> mountPointRegistration =
-                mountPointService.createMountPoint(PATH).register();
+                mountPointService.createMountPoint(PATH).addInitialSchemaContext(mock(EffectiveModelContext.class))
+                .register();
 
         mountPointService.registerProvisionListener(mountPointListener);
 
index 29f0848571b8522df0fb6729ffc2ceb81efbfe03..5a4fabb18a611f43b7401c5a729e8c8c7c4da6b5 100644 (file)
@@ -7,29 +7,31 @@
  */
 package org.opendaylight.mdsal.dom.spi;
 
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableClassToInstanceMap;
 import java.util.Optional;
 import org.opendaylight.mdsal.dom.api.DOMMountPoint;
 import org.opendaylight.mdsal.dom.api.DOMService;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public final class SimpleDOMMountPoint implements DOMMountPoint {
 
     private final YangInstanceIdentifier identifier;
     private final ClassToInstanceMap<DOMService> services;
-    private final SchemaContext schemaContext;
+    private final EffectiveModelContext schemaContext;
 
     private SimpleDOMMountPoint(final YangInstanceIdentifier identifier,
-            final ClassToInstanceMap<DOMService> services, final SchemaContext ctx) {
-        this.identifier = identifier;
+            final ClassToInstanceMap<DOMService> services, final EffectiveModelContext ctx) {
+        this.identifier =  requireNonNull(identifier);
         this.services = ImmutableClassToInstanceMap.copyOf(services);
-        this.schemaContext = ctx;
+        this.schemaContext = requireNonNull(ctx);
     }
 
     public static SimpleDOMMountPoint create(final YangInstanceIdentifier identifier,
-            final ClassToInstanceMap<DOMService> services, final SchemaContext ctx) {
+            final ClassToInstanceMap<DOMService> services, final EffectiveModelContext ctx) {
         return new SimpleDOMMountPoint(identifier, services, ctx);
     }
 
@@ -39,7 +41,7 @@ public final class SimpleDOMMountPoint implements DOMMountPoint {
     }
 
     @Override
-    public SchemaContext getSchemaContext() {
+    public EffectiveModelContext getEffectiveModelContext() {
         return schemaContext;
     }
 
index 71707309a9a65f9e6ac35074e05d00542e1d42b5..23a76a02a1efab7dcf3ea389522ea16955251205 100644 (file)
@@ -17,14 +17,14 @@ import com.google.common.collect.ImmutableClassToInstanceMap;
 import org.junit.Test;
 import org.opendaylight.mdsal.dom.api.DOMService;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public class SimpleDOMMountPointTest {
 
     @Test
     public void basicTest() throws Exception {
         final YangInstanceIdentifier yangInstanceIdentifier = mock(YangInstanceIdentifier.class);
-        final SchemaContext schemaContext = mock(SchemaContext.class);
+        final EffectiveModelContext schemaContext = mock(EffectiveModelContext.class);
         final DOMService domService = mock(DOMService.class);
         final ClassToInstanceMap<DOMService> classToInstanceMap =
                 ImmutableClassToInstanceMap.<DOMService>builder().put(DOMService.class, domService).build();