Move MonitoringSchemaSourceProvider 54/110354/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Feb 2024 11:02:18 +0000 (12:02 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Feb 2024 11:12:11 +0000 (12:12 +0100)
Hide the ietf-netconf-monitoring schema provider, in preparation for it
being revamped a bit.

JIRA: NETCONF-840
Change-Id: Ie291c30b7f877937a28a52217ba23b69cf50eff0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/impl/DefaultDeviceNetconfSchemaProvider.java
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/impl/MonitoringSchemaSourceProvider.java [moved from plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/MonitoringSchemaSourceProvider.java with 94% similarity]
plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/MonitoringSchemaSourceProviderTest.java [moved from plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/MonitoringSchemaSourceProviderTest.java with 61% similarity]
plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/NetconfMessageTransformerTest.java

index d9ba9c9e722620c56b336f3a1df65b0a1d68c6aa..9bbf63f550d6724ea5a93efe0642bd52ef9d2606 100644 (file)
@@ -19,7 +19,6 @@ import java.util.concurrent.Executor;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.netconf.client.mdsal.LibraryModulesSchemas;
 import org.opendaylight.netconf.client.mdsal.LibrarySchemaSourceProvider;
-import org.opendaylight.netconf.client.mdsal.MonitoringSchemaSourceProvider;
 import org.opendaylight.netconf.client.mdsal.NetconfStateSchemasResolverImpl;
 import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchema;
 import org.opendaylight.netconf.client.mdsal.api.DeviceNetconfSchema;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.netconf.client.mdsal;
+package org.opendaylight.netconf.client.mdsal.impl;
 
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
@@ -42,7 +42,7 @@ import org.w3c.dom.Element;
  * {@code ietf-netconf-monitoring} interface. The set of available sources is not pre-determined and each request is
  * dispatched to the device, i.e. this provider reflects real-time updates to available schemas.
  */
-public final class MonitoringSchemaSourceProvider implements SchemaSourceProvider<YangTextSource> {
+final class MonitoringSchemaSourceProvider implements SchemaSourceProvider<YangTextSource> {
     private static final Logger LOG = LoggerFactory.getLogger(MonitoringSchemaSourceProvider.class);
     private static final NodeIdentifier FORMAT_PATHARG =
             NodeIdentifier.create(QName.create(GetSchema.QNAME, "format").intern());
@@ -57,37 +57,11 @@ public final class MonitoringSchemaSourceProvider implements SchemaSourceProvide
     private final NetconfRpcService rpc;
     private final RemoteDeviceId id;
 
-    public MonitoringSchemaSourceProvider(final RemoteDeviceId id, final NetconfRpcService rpc) {
+    MonitoringSchemaSourceProvider(final RemoteDeviceId id, final NetconfRpcService rpc) {
         this.id = requireNonNull(id);
         this.rpc = requireNonNull(rpc);
     }
 
-    public static @NonNull ContainerNode createGetSchemaRequest(final String moduleName,
-            final Optional<String> revision) {
-        final var builder = ImmutableNodes.newContainerBuilder()
-            .withNodeIdentifier(GET_SCHEMA_PATHARG)
-            .withChild(ImmutableNodes.leafNode(IDENTIFIER_PATHARG, moduleName))
-            .withChild(FORMAT_LEAF);
-        revision.ifPresent(rev -> builder.withChild(ImmutableNodes.leafNode(VERSION_PATHARG, rev)));
-        return builder.build();
-    }
-
-    private static Optional<String> getSchemaFromRpc(final RemoteDeviceId id, final ContainerNode result) {
-        if (result == null) {
-            return Optional.empty();
-        }
-
-        final DataContainerChild child = result.childByArg(NETCONF_DATA_PATHARG);
-        checkState(child instanceof DOMSourceAnyxmlNode,
-                "%s Unexpected response to get-schema, expected response with one child %s, but was %s", id,
-                Data.QNAME, result);
-
-        final DOMSource wrappedNode = ((DOMSourceAnyxmlNode) child).body();
-        final Element dataNode = (Element) requireNonNull(wrappedNode.getNode());
-
-        return Optional.of(dataNode.getTextContent().trim());
-    }
-
     @Override
     public ListenableFuture<YangTextSource> getSource(final SourceIdentifier sourceIdentifier) {
         final String moduleName = sourceIdentifier.name().getLocalName();
@@ -115,4 +89,29 @@ public final class MonitoringSchemaSourceProvider implements SchemaSourceProvide
                     result.errors()));
             }, MoreExecutors.directExecutor());
     }
+
+    static @NonNull ContainerNode createGetSchemaRequest(final String moduleName, final Optional<String> revision) {
+        final var builder = ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(GET_SCHEMA_PATHARG)
+            .withChild(ImmutableNodes.leafNode(IDENTIFIER_PATHARG, moduleName))
+            .withChild(FORMAT_LEAF);
+        revision.ifPresent(rev -> builder.withChild(ImmutableNodes.leafNode(VERSION_PATHARG, rev)));
+        return builder.build();
+    }
+
+    private static Optional<String> getSchemaFromRpc(final RemoteDeviceId id, final ContainerNode result) {
+        if (result == null) {
+            return Optional.empty();
+        }
+
+        final DataContainerChild child = result.childByArg(NETCONF_DATA_PATHARG);
+        checkState(child instanceof DOMSourceAnyxmlNode,
+                "%s Unexpected response to get-schema, expected response with one child %s, but was %s", id,
+                Data.QNAME, result);
+
+        final DOMSource wrappedNode = ((DOMSourceAnyxmlNode) child).body();
+        final Element dataNode = (Element) requireNonNull(wrappedNode.getNode());
+
+        return Optional.of(dataNode.getTextContent().trim());
+    }
 }
@@ -5,48 +5,45 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.netconf.client.mdsal;
+package org.opendaylight.netconf.client.mdsal.impl;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
 
+import com.google.common.util.concurrent.Futures;
 import java.net.InetSocketAddress;
 import java.util.Optional;
 import java.util.Set;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.dom.DOMSource;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
 import org.opendaylight.netconf.client.mdsal.api.NetconfRpcService;
 import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.GetSchema;
-import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
-@RunWith(MockitoJUnitRunner.StrictStubs.class)
-public class MonitoringSchemaSourceProviderTest {
+@ExtendWith(MockitoExtension.class)
+class MonitoringSchemaSourceProviderTest {
     @Mock
     private NetconfRpcService service;
 
     private MonitoringSchemaSourceProvider provider;
 
-    @Before
-    public void setUp() throws Exception {
-        doReturn(FluentFutures.immediateFluentFuture(new DefaultDOMRpcResult(getNode(), Set.of()))).when(service)
+    @BeforeEach
+    void setUp() throws Exception {
+        doReturn(Futures.immediateFuture(new DefaultDOMRpcResult(getNode(), Set.of()))).when(service)
             .invokeNetconf(any(), any());
 
         provider = new MonitoringSchemaSourceProvider(
@@ -54,23 +51,22 @@ public class MonitoringSchemaSourceProviderTest {
     }
 
     @Test
-    public void testGetSource() throws Exception {
-        final SourceIdentifier identifier = new SourceIdentifier("test", "2016-02-08");
-        final YangTextSource source = provider.getSource(identifier).get();
+    void testGetSource() throws Exception {
+        final var identifier = new SourceIdentifier("test", "2016-02-08");
+        final var source = provider.getSource(identifier).get();
         assertEquals(identifier, source.sourceId());
         verify(service).invokeNetconf(GetSchema.QNAME,
                 MonitoringSchemaSourceProvider.createGetSchemaRequest("test", Optional.of("2016-02-08")));
     }
 
     private static ContainerNode getNode() throws ParserConfigurationException {
-        final YangInstanceIdentifier.NodeIdentifier id = YangInstanceIdentifier.NodeIdentifier.create(
-                QName.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", "2010-10-04", "output")
-        );
-        final YangInstanceIdentifier.NodeIdentifier childId = YangInstanceIdentifier.NodeIdentifier.create(
-                QName.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", "2010-10-04", "data")
-        );
-        Document xmlDoc = UntrustedXML.newDocumentBuilder().newDocument();
-        Element root = xmlDoc.createElement("data");
+        final var id = new NodeIdentifier(
+            QName.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", "2010-10-04", "output"));
+        final var childId = new NodeIdentifier(
+            QName.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", "2010-10-04", "data"));
+
+        var xmlDoc = UntrustedXML.newDocumentBuilder().newDocument();
+        var root = xmlDoc.createElement("data");
         root.setTextContent("module test {}");
         return ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(id)
index 57927ae162d3677621b02d0624ea3a649ac61182..4fe6cfb1921dd09448ab7b66db091ee600056a6e 100644 (file)
@@ -40,7 +40,6 @@ import org.opendaylight.netconf.api.CapabilityURN;
 import org.opendaylight.netconf.api.messages.NetconfMessage;
 import org.opendaylight.netconf.api.xml.XmlUtil;
 import org.opendaylight.netconf.client.mdsal.AbstractBaseSchemasTest;
-import org.opendaylight.netconf.client.mdsal.MonitoringSchemaSourceProvider;
 import org.opendaylight.netconf.client.mdsal.api.NetconfSessionPreferences;
 import org.opendaylight.netconf.common.mdsal.NormalizedDataUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Commit;