From 0174aff1ecf11d27e25fea30ce60cf0917bc5308 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 10 Nov 2022 16:05:14 +0100 Subject: [PATCH] Eliminate use of SchemaPath in netconf-util We can easily replace SchemaPath with an optional SchemaNodeIdentifier.Absolute. Change-Id: Ibf36b7c5eedf59f0136ab6636d0ea06a5f9b97fa Signed-off-by: Robert Varga --- .../impl/NetconfNotificationManager.java | 15 +++--- .../impl/ops/NotificationsTransformUtil.java | 13 ++--- .../ops/NotificationsTransformUtilTest.java | 4 +- .../netconf/util/NetconfUtil.java | 52 +++++++++++-------- .../netconf/util/NetconfUtilTest.java | 5 +- .../util/NetconfMessageTransformUtil.java | 33 ++++++------ 6 files changed, 64 insertions(+), 58 deletions(-) diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java index 1b6391083a..f25724efb8 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java @@ -46,7 +46,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.not import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibraryChange; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibraryUpdate; import org.opendaylight.yangtools.yang.binding.Notification; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -276,10 +276,9 @@ public class NetconfNotificationManager implements NetconfNotificationCollector, } private static class BaseNotificationPublisherReg implements BaseNotificationPublisherRegistration { - - static final SchemaPath CAPABILITY_CHANGE_SCHEMA_PATH = SchemaPath.create(true, NetconfCapabilityChange.QNAME); - static final SchemaPath SESSION_START_PATH = SchemaPath.create(true, NetconfSessionStart.QNAME); - static final SchemaPath SESSION_END_PATH = SchemaPath.create(true, NetconfSessionEnd.QNAME); + static final Absolute CAPABILITY_CHANGE_SCHEMA_PATH = Absolute.of(NetconfCapabilityChange.QNAME); + static final Absolute SESSION_START_PATH = Absolute.of(NetconfSessionStart.QNAME); + static final Absolute SESSION_END_PATH = Absolute.of(NetconfSessionEnd.QNAME); private final NotificationPublisherRegistration baseRegistration; private final NotificationsTransformUtil transformUtil; @@ -295,7 +294,7 @@ public class NetconfNotificationManager implements NetconfNotificationCollector, baseRegistration.close(); } - private NetconfNotification serializeNotification(final Notification notification, final SchemaPath path) { + private NetconfNotification serializeNotification(final Notification notification, final Absolute path) { return transformUtil.transform(notification, path); } @@ -317,8 +316,8 @@ public class NetconfNotificationManager implements NetconfNotificationCollector, } private static class YangLibraryPublisherReg implements YangLibraryPublisherRegistration { - static final SchemaPath YANG_LIBRARY_CHANGE_PATH = SchemaPath.create(true, YangLibraryChange.QNAME); - static final SchemaPath YANG_LIBRARY_UPDATE_PATH = SchemaPath.create(true, YangLibraryUpdate.QNAME); + static final Absolute YANG_LIBRARY_CHANGE_PATH = Absolute.of(YangLibraryChange.QNAME); + static final Absolute YANG_LIBRARY_UPDATE_PATH = Absolute.of(YangLibraryUpdate.QNAME); private final NotificationPublisherRegistration baseRegistration; private final NotificationsTransformUtil transformUtil; diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java index 10c8bc331f..f6ae762330 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java @@ -30,7 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yangtools.yang.binding.Notification; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.w3c.dom.Document; @@ -55,20 +55,21 @@ public final class NotificationsTransformUtil { /** * Transform base notification for capabilities into NetconfNotification. */ - public NetconfNotification transform(final Notification notification, final SchemaPath path) { + public NetconfNotification transform(final Notification notification, final Absolute path) { return transform(notification, Optional.empty(), path); } - public NetconfNotification transform(final Notification notification, final Date eventTime, final SchemaPath path) { + public NetconfNotification transform(final Notification notification, final Date eventTime, + final Absolute path) { return transform(notification, Optional.ofNullable(eventTime), path); } - private NetconfNotification transform(final Notification notification, final Optional eventTime, - final SchemaPath path) { + private NetconfNotification transform(final Notification notification, final Optional eventTime, + final Absolute path) { final ContainerNode containerNode = serializer.toNormalizedNodeNotification(notification); final DOMResult result = new DOMResult(XmlUtil.newDocument()); try { - NetconfUtil.writeNormalizedNode(containerNode, result, path, schemaContext); + NetconfUtil.writeNormalizedNode(containerNode, result, schemaContext, path); } catch (final XMLStreamException | IOException e) { throw new IllegalStateException("Unable to serialize " + notification, e); } diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java index 6f0e58dfde..1b00fbd3da 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java @@ -25,7 +25,7 @@ import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChangeBuilder; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; import org.xml.sax.SAXException; @@ -64,7 +64,7 @@ public class NotificationsTransformUtilTest { final NetconfCapabilityChange capabilityChange = netconfCapabilityChangeBuilder.build(); final NetconfNotification transform = UTIL.transform(capabilityChange, DATE, - SchemaPath.create(true, NetconfCapabilityChange.QNAME)); + Absolute.of(NetconfCapabilityChange.QNAME)); final String serialized = XmlUtil.toString(transform.getDocument()); diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java index 867c782776..96072648bd 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java @@ -21,6 +21,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.xml.XmlElement; @@ -46,7 +47,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeS import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -139,15 +140,15 @@ public final class NetconfUtil { * * @param normalized data to be written * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @throws IOException when failed to write data into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException when failed to serialize data into XML document */ public static void writeNormalizedNode(final NormalizedNode normalized, final DOMResult result, - final SchemaPath schemaPath, final EffectiveModelContext context) throws IOException, XMLStreamException { + final EffectiveModelContext context, final @Nullable Absolute path) throws IOException, XMLStreamException { final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = NormalizedNodeWriter.forStreamWriter(streamWriter)) { writer.write(normalized); writer.flush(); @@ -162,22 +163,22 @@ public final class NetconfUtil { * @param normalized data to be written * @param metadata metadata to be written * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @throws IOException when failed to write data into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException when failed to serialize data into XML document */ public static void writeNormalizedNode(final NormalizedNode normalized, final @Nullable NormalizedMetadata metadata, - final DOMResult result, final SchemaPath schemaPath, final EffectiveModelContext context) + final DOMResult result, final EffectiveModelContext context, final @Nullable Absolute path) throws IOException, XMLStreamException { if (metadata == null) { - writeNormalizedNode(normalized, result, schemaPath, context); + writeNormalizedNode(normalized, result, context, path); return; } final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); XML_NAMESPACE_SETTER.initializeNamespace(xmlWriter); - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = NormalizedMetadataWriter.forStreamWriter(streamWriter)) { writer.write(normalized, metadata); writer.flush(); @@ -191,16 +192,16 @@ public final class NetconfUtil { * * @param query path to the root node * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @throws IOException when failed to write data into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException when failed to serialize data into XML document */ public static void writeNormalizedNode(final YangInstanceIdentifier query, final DOMResult result, - final SchemaPath schemaPath, final EffectiveModelContext context) throws IOException, XMLStreamException { + final EffectiveModelContext context, final @Nullable Absolute path) throws IOException, XMLStreamException { final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); XML_NAMESPACE_SETTER.initializeNamespace(xmlWriter); - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = new EmptyListXmlWriter(streamWriter, xmlWriter)) { final Iterator it = query.getPathArguments().iterator(); final PathArgument first = it.next(); @@ -217,22 +218,22 @@ public final class NetconfUtil { * @param query path to the root node * @param metadata metadata to be written * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @throws IOException when failed to write data into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException when failed to serialize data into XML document */ public static void writeNormalizedNode(final YangInstanceIdentifier query, - final @Nullable NormalizedMetadata metadata, final DOMResult result, final SchemaPath schemaPath, - final EffectiveModelContext context) throws IOException, XMLStreamException { + final @Nullable NormalizedMetadata metadata, final DOMResult result, final EffectiveModelContext context, + final @Nullable Absolute path) throws IOException, XMLStreamException { if (metadata == null) { - writeNormalizedNode(query, result, schemaPath, context); + writeNormalizedNode(query, result, context, path); return; } final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); XML_NAMESPACE_SETTER.initializeNamespace(xmlWriter); - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = new EmptyListXmlMetadataWriter(streamWriter, xmlWriter, streamWriter.getExtensions().getInstance(StreamWriterMetadataExtension.class), metadata)) { final Iterator it = query.getPathArguments().iterator(); @@ -248,20 +249,20 @@ public final class NetconfUtil { * * @param query path to the root node * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @throws IOException failed to write filter into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException failed to serialize filter into XML document */ public static void writeFilter(final YangInstanceIdentifier query, final DOMResult result, - final SchemaPath schemaPath, final EffectiveModelContext context) throws IOException, XMLStreamException { + final EffectiveModelContext context, final @Nullable Absolute path) throws IOException, XMLStreamException { if (query.isEmpty()) { // No query at all return; } final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = new EmptyListXmlWriter(streamWriter, xmlWriter)) { final Iterator it = query.getPathArguments().iterator(); final PathArgument first = it.next(); @@ -277,15 +278,15 @@ public final class NetconfUtil { * * @param query path to the root node * @param result DOM result holder - * @param schemaPath schema path of the parent node * @param context mountpoint schema context + * @param path optional schema node identifier of the parent node * @param fields list of specific fields for which the filter should be created * @throws IOException failed to write filter into {@link NormalizedNodeStreamWriter} * @throws XMLStreamException failed to serialize filter into XML document * @throws NullPointerException if any argument is null */ public static void writeFilter(final YangInstanceIdentifier query, final DOMResult result, - final SchemaPath schemaPath, final EffectiveModelContext context, + final EffectiveModelContext context, final @Nullable Absolute path, final List fields) throws IOException, XMLStreamException { if (query.isEmpty() || fields.isEmpty()) { // No query at all @@ -297,7 +298,7 @@ public final class NetconfUtil { final XMLStreamWriter xmlWriter = XML_FACTORY.createXMLStreamWriter(result); try { - try (var streamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlWriter, context, schemaPath); + try (var streamWriter = newWriter(xmlWriter, context, path); var writer = new EmptyListXmlWriter(streamWriter, xmlWriter)) { final PathArgument first = rootNode.element(); StreamingContext.fromSchemaAndQNameChecked(context, first.getNodeType()) @@ -416,4 +417,11 @@ public final class NetconfUtil { final DOMSource value) throws XMLStreamException, URISyntaxException, IOException, SAXException { return transformDOMSourceToNormalizedNode(new EmptyMountPointContext(schemaContext), value); } + + // FIXME: this should not be needed once we have yangtools-10.0.1. + private static @NonNull NormalizedNodeStreamWriter newWriter(final XMLStreamWriter writer, + final EffectiveModelContext context, final @Nullable Absolute path) { + return path == null ? XMLStreamNormalizedNodeStreamWriter.create(writer, context) + : XMLStreamNormalizedNodeStreamWriter.create(writer, context, path); + } } diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java index fd291b22ad..0ba23df973 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java @@ -33,7 +33,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.w3c.dom.Document; public class NetconfUtilTest { @@ -75,8 +75,7 @@ public class NetconfUtilTest { .withChild(sessionList) .build(); final DOMResult result = new DOMResult(XmlUtil.newDocument()); - final SchemaPath path = SchemaPath.create(true, NetconfState.QNAME); - NetconfUtil.writeNormalizedNode(sessions, result, path, context); + NetconfUtil.writeNormalizedNode(sessions, result, context, Absolute.of(NetconfState.QNAME)); final Document actual = (Document) result.getNode(); final Document expected = XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/sessions.xml")); final Diff diff = XMLUnit.compareXML(expected, actual); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java index e740c6d9a9..a4c8f909f8 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java @@ -148,14 +148,14 @@ public final class NetconfMessageTransformUtil { public static final @NonNull NodeIdentifier NETCONF_CONFIG_NODEID = NodeIdentifier.create(NETCONF_CONFIG_QNAME); public static final @NonNull QName NETCONF_COMMIT_QNAME = QName.create(NETCONF_QNAME, "commit").intern(); - public static final @NonNull SchemaPath NETCONF_COMMIT_PATH = toPath(NETCONF_COMMIT_QNAME); + public static final @NonNull Absolute NETCONF_COMMIT_PATH = toPath(NETCONF_COMMIT_QNAME); public static final @NonNull QName NETCONF_VALIDATE_QNAME = QName.create(NETCONF_QNAME, "validate").intern(); public static final @NonNull NodeIdentifier NETCONF_VALIDATE_NODEID = NodeIdentifier.create(NETCONF_VALIDATE_QNAME); - public static final @NonNull SchemaPath NETCONF_VALIDATE_PATH = toPath(NETCONF_VALIDATE_QNAME); + public static final @NonNull Absolute NETCONF_VALIDATE_PATH = toPath(NETCONF_VALIDATE_QNAME); public static final @NonNull QName NETCONF_COPY_CONFIG_QNAME = QName.create(NETCONF_QNAME, "copy-config").intern(); public static final @NonNull NodeIdentifier NETCONF_COPY_CONFIG_NODEID = NodeIdentifier.create(NETCONF_COPY_CONFIG_QNAME); - public static final @NonNull SchemaPath NETCONF_COPY_CONFIG_PATH = toPath(NETCONF_COPY_CONFIG_QNAME); + public static final @NonNull Absolute NETCONF_COPY_CONFIG_PATH = toPath(NETCONF_COPY_CONFIG_QNAME); public static final @NonNull QName NETCONF_OPERATION_QNAME = QName.create(NETCONF_QNAME, "operation").intern(); private static final @NonNull QName NETCONF_OPERATION_QNAME_LEGACY = @@ -167,18 +167,18 @@ public final class NetconfMessageTransformUtil { public static final @NonNull QName NETCONF_EDIT_CONFIG_QNAME = QName.create(NETCONF_QNAME, "edit-config").intern(); public static final @NonNull NodeIdentifier NETCONF_EDIT_CONFIG_NODEID = NodeIdentifier.create(NETCONF_EDIT_CONFIG_QNAME); - public static final @NonNull SchemaPath NETCONF_EDIT_CONFIG_PATH = toPath(NETCONF_EDIT_CONFIG_QNAME); + public static final @NonNull Absolute NETCONF_EDIT_CONFIG_PATH = toPath(NETCONF_EDIT_CONFIG_QNAME); public static final @NonNull QName NETCONF_GET_CONFIG_QNAME = QName.create(NETCONF_QNAME, "get-config"); public static final @NonNull NodeIdentifier NETCONF_GET_CONFIG_NODEID = NodeIdentifier.create(NETCONF_GET_CONFIG_QNAME); - public static final @NonNull SchemaPath NETCONF_GET_CONFIG_PATH = toPath(NETCONF_GET_CONFIG_QNAME); + public static final @NonNull Absolute NETCONF_GET_CONFIG_PATH = toPath(NETCONF_GET_CONFIG_QNAME); public static final @NonNull QName NETCONF_DISCARD_CHANGES_QNAME = QName.create(NETCONF_QNAME, "discard-changes"); - public static final @NonNull SchemaPath NETCONF_DISCARD_CHANGES_PATH = toPath(NETCONF_DISCARD_CHANGES_QNAME); + public static final @NonNull Absolute NETCONF_DISCARD_CHANGES_PATH = toPath(NETCONF_DISCARD_CHANGES_QNAME); public static final @NonNull QName NETCONF_TYPE_QNAME = QName.create(NETCONF_QNAME, "type").intern(); public static final @NonNull QName NETCONF_FILTER_QNAME = QName.create(NETCONF_QNAME, "filter").intern(); public static final @NonNull QName NETCONF_GET_QNAME = QName.create(NETCONF_QNAME, "get").intern(); public static final @NonNull NodeIdentifier NETCONF_GET_NODEID = NodeIdentifier.create(NETCONF_GET_QNAME); - public static final @NonNull SchemaPath NETCONF_GET_PATH = toPath(NETCONF_GET_QNAME); + public static final @NonNull Absolute NETCONF_GET_PATH = toPath(NETCONF_GET_QNAME); public static final @NonNull QName NETCONF_RPC_QNAME = QName.create(NETCONF_QNAME, "rpc").intern(); public static final QName YANG_QNAME = null; public static final URI NETCONF_ACTION_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:1"); @@ -199,10 +199,10 @@ public final class NetconfMessageTransformUtil { public static final @NonNull QName NETCONF_LOCK_QNAME = QName.create(NETCONF_QNAME, "lock").intern(); public static final @NonNull NodeIdentifier NETCONF_LOCK_NODEID = NodeIdentifier.create(NETCONF_LOCK_QNAME); - public static final @NonNull SchemaPath NETCONF_LOCK_PATH = toPath(NETCONF_LOCK_QNAME); + public static final @NonNull Absolute NETCONF_LOCK_PATH = toPath(NETCONF_LOCK_QNAME); public static final @NonNull QName NETCONF_UNLOCK_QNAME = QName.create(NETCONF_QNAME, "unlock").intern(); public static final @NonNull NodeIdentifier NETCONF_UNLOCK_NODEID = NodeIdentifier.create(NETCONF_UNLOCK_QNAME); - public static final @NonNull SchemaPath NETCONF_UNLOCK_PATH = toPath(NETCONF_UNLOCK_QNAME); + public static final @NonNull Absolute NETCONF_UNLOCK_PATH = toPath(NETCONF_UNLOCK_QNAME); public static final @NonNull NodeIdentifier EDIT_CONTENT_NODEID = NodeIdentifier.create(EditContent.QNAME); @@ -222,7 +222,7 @@ public final class NetconfMessageTransformUtil { public static final @NonNull ContainerNode CREATE_SUBSCRIPTION_RPC_CONTENT = Builders.containerBuilder() .withNodeIdentifier(NodeIdentifier.create(CREATE_SUBSCRIPTION_RPC_QNAME)).build(); - public static final @NonNull SchemaPath CREATE_SUBSCRIPTION_RPC_PATH = toPath(CREATE_SUBSCRIPTION_RPC_QNAME); + public static final @NonNull Absolute CREATE_SUBSCRIPTION_RPC_PATH = toPath(CREATE_SUBSCRIPTION_RPC_QNAME); public static final @NonNull NodeIdentifier NETCONF_FILTER_NODEID = NodeIdentifier.create(NETCONF_FILTER_QNAME); @@ -239,7 +239,7 @@ public final class NetconfMessageTransformUtil { final EffectiveModelContext ctx) { final Element element = getNetconfFilterElement(); try { - NetconfUtil.writeFilter(identifier, new DOMResult(element), SchemaPath.ROOT, ctx); + NetconfUtil.writeFilter(identifier, new DOMResult(element), ctx, null); } catch (IOException | XMLStreamException e) { throw new IllegalStateException("Unable to serialize filter element for path " + identifier, e); } @@ -261,7 +261,7 @@ public final class NetconfMessageTransformUtil { for (final FieldsFilter filter : fieldsFilters) { try { - NetconfUtil.writeFilter(filter.path(), new DOMResult(element), SchemaPath.ROOT, ctx, filter.fields()); + NetconfUtil.writeFilter(filter.path(), new DOMResult(element), ctx, null, filter.fields()); } catch (IOException | XMLStreamException e) { throw new IllegalStateException(String.format( "Unable to serialize filter element for path %s with fields: %s", @@ -385,10 +385,9 @@ public final class NetconfMessageTransformUtil { nnWriter.write(lastChildOverride.get()); } } - NetconfUtil.writeNormalizedNode(result.getResult(), metadata, new DOMResult(element), - SchemaPath.ROOT, ctx); + NetconfUtil.writeNormalizedNode(result.getResult(), metadata, new DOMResult(element), ctx, null); } else { - NetconfUtil.writeNormalizedNode(dataPath, metadata, new DOMResult(element), SchemaPath.ROOT, ctx); + NetconfUtil.writeNormalizedNode(dataPath, metadata, new DOMResult(element), ctx, null); } } catch (final IOException | XMLStreamException e) { throw new IllegalStateException("Unable to serialize edit config content element for path " + dataPath, e); @@ -429,8 +428,8 @@ public final class NetconfMessageTransformUtil { .withChild(createEditConfigAnyxml(ctx, dataPath, operation, lastChildOverride)).build(); } - public static @NonNull SchemaPath toPath(final QName rpc) { - return SchemaPath.ROOT.createChild(rpc); + public static @NonNull Absolute toPath(final QName rpc) { + return Absolute.of(rpc); } public static Map.Entry stripNotification(final NetconfMessage message) { -- 2.36.6