From: Robert Varga Date: Thu, 10 Nov 2022 17:07:21 +0000 (+0100) Subject: Elimiante SchemaPath from NetconfMessageTransformUtil X-Git-Tag: v5.0.0~112 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4c08a537c8fb343e0b4964d7d96baa9dba2e0059;p=netconf.git Elimiante SchemaPath from NetconfMessageTransformUtil We can use SchemaInferenceStack to acquire the state we need instead of going through SchemaPath. Change-Id: If96b521112c898245b154e3f60233e24aa17b7cd Signed-off-by: Robert Varga --- 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 a4c8f909f8..cecd8e0227 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 @@ -81,8 +81,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.SchemaOrderedNormalizedN import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; 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.model.util.SchemaInferenceStack; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -532,20 +532,19 @@ public final class NetconfMessageTransformUtil { } } - @SuppressWarnings("checkstyle:IllegalCatch") public static void writeNormalizedOperationInput(final ContainerNode normalized, final DOMResult result, final Absolute operationPath, final EffectiveModelContext baseNetconfCtx) throws IOException, XMLStreamException { - final QName inputQName = YangConstants.operationInputQName(operationPath.lastNodeIdentifier().getModule()); - // FIXME: eliminate this conversion - final SchemaPath inputPath = SchemaPath.of(operationPath).createChild(inputQName); + final var stack = SchemaInferenceStack.of(baseNetconfCtx, operationPath); + stack.enterSchemaTree(YangConstants.operationInputQName(operationPath.lastNodeIdentifier().getModule())); + final var inputInference = stack.toSchemaTreeInference(); final XMLStreamWriter writer = NetconfUtil.XML_FACTORY.createXMLStreamWriter(result); try { try (NormalizedNodeStreamWriter normalizedNodeStreamWriter = - XMLStreamNormalizedNodeStreamWriter.create(writer, baseNetconfCtx, inputPath)) { + XMLStreamNormalizedNodeStreamWriter.create(writer, inputInference)) { try (SchemaOrderedNormalizedNodeWriter normalizedNodeWriter = - new SchemaOrderedNormalizedNodeWriter(normalizedNodeStreamWriter, baseNetconfCtx, inputPath)) { + new SchemaOrderedNormalizedNodeWriter(normalizedNodeStreamWriter, inputInference)) { final Collection value = normalized.body(); normalizedNodeWriter.write(value); normalizedNodeWriter.flush(); @@ -554,7 +553,7 @@ public final class NetconfMessageTransformUtil { } finally { try { writer.close(); - } catch (final Exception e) { + } catch (final XMLStreamException e) { LOG.warn("Unable to close resource properly", e); } }