From 0eb8552c068936421f8a565ec24026c9f29274b8 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Aug 2020 16:12:01 +0200 Subject: [PATCH] Remove DOMMountPoint's EffectiveModelContext A mount point does not really have to have an EffectiveModelContext, as the model may not be known. The schema may be acquired via DOMSchemaService, if it is provided. JIRA: MDSAL-542 Change-Id: I8013cd773267eee8d5b9cb83d56c46a36ced2005 Signed-off-by: Robert Varga --- .../mdsal/dom/api/DOMMountPoint.java | 5 +---- .../mdsal/dom/api/DOMMountPointService.java | 3 --- .../dom/broker/DOMMountPointServiceImpl.java | 10 +--------- .../dom/broker/DOMMountPointServiceImplTest.java | 9 +-------- .../mdsal/dom/spi/SimpleDOMMountPoint.java | 16 +++------------- .../mdsal/dom/spi/SimpleDOMMountPointTest.java | 5 +---- 6 files changed, 7 insertions(+), 41 deletions(-) diff --git a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPoint.java b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPoint.java index 55bde3d815..df743e2835 100644 --- a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPoint.java +++ b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPoint.java @@ -10,11 +10,8 @@ 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.EffectiveModelContextProvider; -// 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, EffectiveModelContextProvider { +public interface DOMMountPoint extends Identifiable { Optional getService(Class cls); } diff --git a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPointService.java b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPointService.java index f4b6499ccd..fdbcff2d56 100644 --- a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPointService.java +++ b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMMountPointService.java @@ -12,7 +12,6 @@ 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.EffectiveModelContext; public interface DOMMountPointService extends DOMService { @@ -26,8 +25,6 @@ public interface DOMMountPointService extends DOMService { DOMMountPointBuilder addService(Class type,T impl); - DOMMountPointBuilder addInitialSchemaContext(EffectiveModelContext ctx); - ObjectRegistration register(); } } diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java index ce0012815f..4fd4724589 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImpl.java @@ -27,7 +27,6 @@ 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.EffectiveModelContext; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; @@ -121,7 +120,6 @@ public final class DOMMountPointServiceImpl implements DOMMountPointService { private final MutableClassToInstanceMap services = MutableClassToInstanceMap.create(); private final YangInstanceIdentifier path; - private EffectiveModelContext schemaContext; private SimpleDOMMountPoint mountPoint; @@ -135,16 +133,10 @@ public final class DOMMountPointServiceImpl implements DOMMountPointService { return this; } - @Override - public DOMMountPointBuilder addInitialSchemaContext(final EffectiveModelContext ctx) { - schemaContext = requireNonNull(ctx); - return this; - } - @Override public ObjectRegistration register() { checkState(mountPoint == null, "Mount point is already built."); - mountPoint = SimpleDOMMountPoint.create(path, services, schemaContext); + mountPoint = SimpleDOMMountPoint.create(path, services); return registerMountPoint(mountPoint); } } diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImplTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImplTest.java index a4719b30bb..c3c34ce2fa 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImplTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMMountPointServiceImplTest.java @@ -25,7 +25,6 @@ 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.EffectiveModelContext; public class DOMMountPointServiceImplTest { @@ -49,9 +48,6 @@ public class DOMMountPointServiceImplTest { // Create a mount point with schema context and a DOMService final DOMMountPointBuilder mountPointBuilder = mountPointService.createMountPoint(PATH); - final EffectiveModelContext schemaContext = mock(EffectiveModelContext.class); - mountPointBuilder.addInitialSchemaContext(schemaContext); - final DOMRpcService rpcService = mock(DOMRpcService.class); mountPointBuilder.addService(DOMRpcService.class, rpcService); @@ -65,8 +61,6 @@ public class DOMMountPointServiceImplTest { final DOMMountPoint mountPoint = mountPointService.getMountPoint(PATH).get(); assertTrue(mountPoint.getService(DOMRpcService.class).isPresent()); assertEquals(rpcService, mountPoint.getService(DOMRpcService.class).get()); - - assertEquals(schemaContext, mountPoint.getSchemaContext()); } @Test @@ -75,8 +69,7 @@ public class DOMMountPointServiceImplTest { doNothing().when(mountPointListener).onMountPointRemoved(PATH); final ObjectRegistration mountPointRegistration = - mountPointService.createMountPoint(PATH).addInitialSchemaContext(mock(EffectiveModelContext.class)) - .register(); + mountPointService.createMountPoint(PATH).register(); mountPointService.registerProvisionListener(mountPointListener); diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPoint.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPoint.java index 0074a828b1..fc07c70fb3 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPoint.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPoint.java @@ -7,7 +7,6 @@ */ package org.opendaylight.mdsal.dom.spi; -import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; import com.google.common.collect.ClassToInstanceMap; @@ -16,24 +15,21 @@ 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.EffectiveModelContext; public final class SimpleDOMMountPoint implements DOMMountPoint { private final YangInstanceIdentifier identifier; private final ClassToInstanceMap services; - private final EffectiveModelContext schemaContext; private SimpleDOMMountPoint(final YangInstanceIdentifier identifier, - final ClassToInstanceMap services, final EffectiveModelContext ctx) { + final ClassToInstanceMap services) { this.identifier = requireNonNull(identifier); this.services = ImmutableClassToInstanceMap.copyOf(services); - this.schemaContext = ctx; } public static SimpleDOMMountPoint create(final YangInstanceIdentifier identifier, - final ClassToInstanceMap services, final EffectiveModelContext ctx) { - return new SimpleDOMMountPoint(identifier, services, ctx); + final ClassToInstanceMap services) { + return new SimpleDOMMountPoint(identifier, services); } @Override @@ -41,12 +37,6 @@ public final class SimpleDOMMountPoint implements DOMMountPoint { return identifier; } - @Override - public EffectiveModelContext getEffectiveModelContext() { - checkState(schemaContext != null, "Mount point %s does not have a model context", identifier); - return schemaContext; - } - @Override public Optional getService(final Class cls) { return Optional.ofNullable(services.getInstance(cls)); diff --git a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPointTest.java b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPointTest.java index 23a76a02a1..16ddd4e01b 100644 --- a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPointTest.java +++ b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/SimpleDOMMountPointTest.java @@ -17,25 +17,22 @@ 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.EffectiveModelContext; public class SimpleDOMMountPointTest { @Test public void basicTest() throws Exception { final YangInstanceIdentifier yangInstanceIdentifier = mock(YangInstanceIdentifier.class); - final EffectiveModelContext schemaContext = mock(EffectiveModelContext.class); final DOMService domService = mock(DOMService.class); final ClassToInstanceMap classToInstanceMap = ImmutableClassToInstanceMap.builder().put(DOMService.class, domService).build(); final SimpleDOMMountPoint simpleDOMMountPoint = - SimpleDOMMountPoint.create(yangInstanceIdentifier, classToInstanceMap, schemaContext); + SimpleDOMMountPoint.create(yangInstanceIdentifier, classToInstanceMap); assertNotNull(simpleDOMMountPoint); assertEquals(yangInstanceIdentifier, simpleDOMMountPoint.getIdentifier()); - assertEquals(schemaContext, simpleDOMMountPoint.getSchemaContext()); assertTrue(simpleDOMMountPoint.getService(DOMService.class).isPresent()); assertEquals(domService, simpleDOMMountPoint.getService(DOMService.class).get()); -- 2.36.6