Promote DatabindContext to restconf.server.api 83/109083/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Nov 2023 00:26:53 +0000 (01:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Nov 2023 01:27:48 +0000 (02:27 +0100)
The furst cut at our output will typically have NormalizedNode
structures and related DatabindContext, so so these can be driven home.

Duplicate DatabindProvider.currentContext() with
DatabindAware.databind().

JIRA: NETCONF-773
Change-Id: I62d10e8a912dfd62bbccaaa0cc52466caca7caa1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
42 files changed:
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/Insert.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/databind/JsonPatchBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/databind/PatchBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/databind/XmlPatchBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/errors/JsonStreamWriterWithDisabledValidation.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/errors/RestconfDocumentedExceptionMapper.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/errors/StreamWriterWithDisabledValidation.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/errors/XmlStreamWriterWithDisabledValidation.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/legacy/InstanceIdentifierContext.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/MdsalRestconfStrategy.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/NetconfRestconfStrategy.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/RestconfStrategy.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/IdentifierCodec.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/ParserIdentifier.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/StringModuleInstanceIdentifierCodec.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierDeserializer.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializer.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DatabindAware.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DatabindContext.java [moved from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/databind/DatabindContext.java with 98% similarity]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/MdsalRestconfServer.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/streams/devnotif/SubscribeDeviceNotificationRpc.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/streams/dtcl/CreateDataChangeEventSubscriptionRpc.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/streams/dtcl/DataTreeChangeSource.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/streams/notif/CreateNotificationStreamRpc.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/mdsal/streams/notif/NotificationSource.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/spi/DatabindProvider.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/spi/OperationInput.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/spi/OperationOutput.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/AbstractInstanceIdentifierTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/AbstractJukeboxTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/databind/AbstractResourceBodyTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/databind/jaxrs/QueryParamsTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/errors/RestconfDocumentedExceptionMapperTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/MdsalRestconfStrategyTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/NetconfRestconfStrategyTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/DataTreeChangeStreamTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/AbstractFieldsTranslatorTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/IdentifierCodecTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/ParserIdentifierTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierDeserializerTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializerTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/server/mdsal/streams/dtcl/CreateNotificationStreamRpcTest.java

index 404014db173cf7f0a5779d72d0242769ccf67c22..30a44726bec34c84aa0f39565af5fd1232a9ce30 100644 (file)
@@ -18,8 +18,8 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.restconf.api.query.InsertParam;
 import org.opendaylight.restconf.api.query.PointParam;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.YangInstanceIdentifierDeserializer;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 
index e0797ef9a6c20243d52be272d8a861fa95805184..779d994b074d6df5b6c5a13145d7ddddc85f0940 100644 (file)
@@ -26,6 +26,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.patch.PatchContext;
 import org.opendaylight.restconf.common.patch.PatchEntity;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.patch.rev170222.yang.patch.yang.patch.Edit.Operation;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
index 1f300696f249161b4e4dd9f8d3e6b854045a6607..3eb1a4bfb19007b7e94e8f7063f940e7ff53fbda 100644 (file)
@@ -18,6 +18,7 @@ import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.patch.PatchContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.InstanceIdentifierContext;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.IdentifierCodec;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.patch.rev170222.yang.patch.yang.patch.Edit.Operation;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
index a6f7c17ab7ae5056c2a1f777d563039a4f7d0dbb..03d76eba7faf39fa5966a91ee4f2870d5ff9e532 100644 (file)
@@ -20,6 +20,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.patch.PatchContext;
 import org.opendaylight.restconf.common.patch.PatchEntity;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.patch.rev170222.yang.patch.yang.patch.Edit.Operation;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
index e5e4d5ce672c94a540ed6b80e73ece54251cdf43..0c6a790af6331308a88c13d927a916eef6372b23 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev170126.Errors;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
index 40dd5c852a8ccdf562379384330ce308544b06ea..13e27e5b74bf97055f7b7901aa9e2113ba457b37 100644 (file)
@@ -177,7 +177,7 @@ public final class RestconfDocumentedExceptionMapper implements ExceptionMapper<
              OutputStreamWriter streamStreamWriter = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
         ) {
             return writeNormalizedNode(errorsContainer, outputStream,
-                new JsonStreamWriterWithDisabledValidation(databindProvider.currentContext(), streamStreamWriter));
+                new JsonStreamWriterWithDisabledValidation(databindProvider.currentDatabind(), streamStreamWriter));
         } catch (IOException e) {
             throw new IllegalStateException("Cannot close some of the output JSON writers", e);
         }
@@ -192,7 +192,7 @@ public final class RestconfDocumentedExceptionMapper implements ExceptionMapper<
     private String serializeErrorsContainerToXml(final ContainerNode errorsContainer) {
         try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
             return writeNormalizedNode(errorsContainer, outputStream,
-                new XmlStreamWriterWithDisabledValidation(databindProvider.currentContext(), outputStream));
+                new XmlStreamWriterWithDisabledValidation(databindProvider.currentDatabind(), outputStream));
         } catch (IOException e) {
             throw new IllegalStateException("Cannot close some of the output XML writers", e);
         }
index 8bb1282edf4d9998be95f7686e54f1b893494db7..37c2523b404bd6f55cfdb80bd08117fa7b23e895 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors;
 
 import java.io.IOException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev170126.Errors;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.ForwardingNormalizedNodeStreamWriter;
index dcee7a32d13716e2e62ca555bf7160150a50d554..b8303d1afd5ff16fe5296e61b0590d4bd88080f1 100644 (file)
@@ -15,7 +15,7 @@ import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
index 24977a2a8599195338015a66fabf875d0c364dc2..6c5db3dc2e623172feee33c679bdcb64d6b275a9 100644 (file)
@@ -20,9 +20,9 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.api.ApiPath.Step;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.IdentifierCodec;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.YangInstanceIdentifierDeserializer;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
index b5429ebae7293d65b3180c6110bf35d1be2638ec..1c040dc57981a6a180b980bb593d991dc1a01890 100644 (file)
@@ -27,7 +27,7 @@ import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
 import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.errors.SettableRestconfFuture;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.restconf.server.spi.RpcImplementation;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
index 5cb153844dd81a772f60ce3d1f0b30e20a960fd2..ab6d07d03450b01ff07664e49b0de5eb19e9e098 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
 import org.opendaylight.netconf.dom.api.NetconfDataTreeService;
 import org.opendaylight.restconf.common.errors.SettableRestconfFuture;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
index 5b593ffc64da40e01635039f385317fa340e498f..4e5d2b1267e26c5a73844bfadce9058bdb1b96c8 100644 (file)
@@ -48,10 +48,10 @@ import org.opendaylight.restconf.common.patch.PatchContext;
 import org.opendaylight.restconf.common.patch.PatchStatusContext;
 import org.opendaylight.restconf.common.patch.PatchStatusEntity;
 import org.opendaylight.restconf.nb.rfc8040.Insert;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.IdentifierCodec;
 import org.opendaylight.restconf.server.api.DataPostResult.CreateResource;
 import org.opendaylight.restconf.server.api.DataPutResult;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.restconf.server.spi.OperationInput;
 import org.opendaylight.restconf.server.spi.OperationOutput;
 import org.opendaylight.restconf.server.spi.RpcImplementation;
index 50370239afc972150ab5273bb7b543b9d06e72a2..b68682287a166d6b593f1cb838ee50cf67fb463c 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.restconf.nb.rfc8040.utils.parser;
 
 import org.opendaylight.restconf.api.ApiPath;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
 /**
index aa53a98fa0e3ae17e4dc206d51eee10c10ba7751..c0497a4b54d1799c5c29734f76d208b2aa11bc5a 100644 (file)
@@ -13,8 +13,8 @@ import org.opendaylight.mdsal.dom.api.DOMMountPoint;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.InstanceIdentifierContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
index 74e5ac783b46d25c3ee20a9eb144427497994c43..cbe5caad79d98f827a03a96402cc8a92a682a0bc 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.restconf.nb.rfc8040.utils.parser;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
index caba62cf2b262e1e9594ebbcf6fbdf068e3486ca..fbe64e51fac97a71adbe84b7f2e7d530b01fb237 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.api.ApiPath.ListInstance;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index d053e83ae7806189cf475b2f7616045e0adbed31..0899f75982f06d83e9ae9666fa96e076ac38bfaf 100644 (file)
@@ -11,7 +11,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DatabindAware.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DatabindAware.java
new file mode 100644 (file)
index 0000000..a131bdf
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.restconf.server.api;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+/**
+ * Common interface for contracts that provide a {@link DatabindContext} instance via {@link #databind()}.
+ */
+@NonNullByDefault
+public interface DatabindAware {
+    /**
+     * Returns the associated DatabindContext.
+     *
+     * @return the associated DatabindContext
+     */
+    DatabindContext databind();
+}
similarity index 98%
rename from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/databind/DatabindContext.java
rename to restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DatabindContext.java
index 956f3b33bb6e0a22cc249173bdc377bbfa4d6383..1959d53bb8c41ff351af269826f3867f49e024d4 100644 (file)
@@ -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.restconf.nb.rfc8040.databind;
+package org.opendaylight.restconf.server.api;
 
 import static java.util.Objects.requireNonNull;
 
index bf9543b677759308973837074a891a66d5b66f99..2e0176fe8ed3f16d171c3f951c52826921844aa0 100644 (file)
@@ -59,7 +59,6 @@ import org.opendaylight.restconf.nb.rfc8040.Insert;
 import org.opendaylight.restconf.nb.rfc8040.ReadDataParams;
 import org.opendaylight.restconf.nb.rfc8040.databind.ChildBody;
 import org.opendaylight.restconf.nb.rfc8040.databind.DataPostBody;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.databind.OperationInputBody;
 import org.opendaylight.restconf.nb.rfc8040.databind.PatchBody;
 import org.opendaylight.restconf.nb.rfc8040.databind.ResourceBody;
@@ -74,6 +73,7 @@ import org.opendaylight.restconf.server.api.DataPostResult;
 import org.opendaylight.restconf.server.api.DataPostResult.CreateResource;
 import org.opendaylight.restconf.server.api.DataPostResult.InvokeOperation;
 import org.opendaylight.restconf.server.api.DataPutResult;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.restconf.server.api.ModulesGetResult;
 import org.opendaylight.restconf.server.api.OperationsGetResult;
 import org.opendaylight.restconf.server.api.RestconfServer;
@@ -182,7 +182,7 @@ public final class MdsalRestconfServer
     }
 
     @Override
-    public DatabindContext currentContext() {
+    public DatabindContext currentDatabind() {
         return localStrategy().databind();
     }
 
index 8bf3b520685a134f84603cf8c75d7652cdc33f73..65823a2d2155dd76f20606a4d541ac69325b0304 100644 (file)
@@ -82,8 +82,7 @@ public final class SubscribeDeviceNotificationRpc extends RpcImplementation {
         }
 
         return streamRegistry.createStream(restconfURI, new DeviceNotificationSource(mountPointService, path),
-            "All YANG notifications occuring on mount point /"
-                + IdentifierCodec.serialize(path, input.currentContext()))
+            "All YANG notifications occuring on mount point /" + IdentifierCodec.serialize(path, input.databind()))
             .transform(stream -> input.newOperationOutput(Builders.containerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(SubscribeDeviceNotificationOutput.QNAME))
                 .withChild(ImmutableNodes.leafNode(DEVICE_NOTIFICATION_STREAM_PATH_NODEID, stream.name()))
index 49960caa80085089e7b9c734f34acf451ebdcd9b..bcaff1982c2acac54c23c41205a7240716f514ad 100644 (file)
@@ -112,7 +112,7 @@ public final class CreateDataChangeEventSubscriptionRpc extends RpcImplementatio
         return streamRegistry.createStream(restconfURI,
             new DataTreeChangeSource(databindProvider, changeService, datastore, path),
             "Events occuring in " + datastore + " datastore under /"
-                + IdentifierCodec.serialize(path, input.currentContext()))
+                + IdentifierCodec.serialize(path, input.databind()))
             .transform(stream -> input.newOperationOutput(Builders.containerBuilder()
                 .withNodeIdentifier(OUTPUT_NODEID)
                 .withChild(ImmutableNodes.leafNode(STREAM_NAME_NODEID, stream.name()))
index 0c8673af092849d4cabacf060c4030243e89d870..dfa696eae94ab096817149e67fbf44e6dec27041 100644 (file)
@@ -58,7 +58,7 @@ public final class DataTreeChangeSource extends Source<List<DataTreeCandidate>>
                 @Override
                 public void onDataTreeChanged(final List<DataTreeCandidate> changes) {
                     // FIXME: format one change at a time?
-                    sink.publish(databindProvider.currentContext().modelContext(), changes, Instant.now());
+                    sink.publish(databindProvider.currentDatabind().modelContext(), changes, Instant.now());
                 }
 
                 @Override
index 8d6f2f3dc5d3a862b294491be7d5fb24bdc3d73b..ffa53cf55208248305c6507926e9ae4d022fa9ad 100644 (file)
@@ -74,7 +74,7 @@ public final class CreateNotificationStreamRpc extends RpcImplementation {
             .sorted()
             .collect(ImmutableSet.toImmutableSet());
 
-        final var modelContext = input.currentContext().modelContext();
+        final var modelContext = input.databind().modelContext();
         final var description = new StringBuilder("YANG notifications matching any of {");
         var haveFirst = false;
         for (var qname : qnames) {
index 5686d247db540ba46d21c9d45f8ea3f5c91aec75..60fe206dec27eed3a3563cf915fa1c6ff1fb741a 100644 (file)
@@ -38,7 +38,7 @@ final class NotificationSource extends AbstractNotificationSource {
     @Override
     protected Registration start(final Sink<DOMNotification> sink) {
         return notificationService.registerNotificationListener(
-            new Listener(sink, () -> databindProvider.currentContext().modelContext()),
+            new Listener(sink, () -> databindProvider.currentDatabind().modelContext()),
             qnames.stream().map(Absolute::of).toList());
     }
 
index 634ee7f7414d5ac61ffe60d727dfaf3f1aa16769..b9291f9b8ef742beff22687f0ecfcdeba049c39e 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.restconf.server.spi;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 
 /**
  * A service providing access to a {@link DatabindContext}.
@@ -16,9 +16,9 @@ import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 @NonNullByDefault
 public interface DatabindProvider {
     /**
-     * Acquire current {@link DatabindContext}.
+     * Return the current {@link DatabindContext}.
      *
-     * @return Current {@link DatabindContext}
+     * @return the current {@link DatabindContext}
      */
-    DatabindContext currentContext();
+    DatabindContext currentDatabind();
 }
index b982153eb771f2e6c76eff3f6bdd599a2afaedb5..bbe96663ff7b8384b4db4a68c05bf4d561d686be 100644 (file)
@@ -11,7 +11,8 @@ import static java.util.Objects.requireNonNull;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindAware;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
 
@@ -19,21 +20,21 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference
  * Input to an operation invocation.
  */
 @NonNullByDefault
-public record OperationInput(DatabindContext currentContext, Inference operation, ContainerNode input)
-        implements DatabindProvider {
+public record OperationInput(DatabindContext databind, Inference operation, ContainerNode input)
+        implements DatabindAware {
     public OperationInput {
-        requireNonNull(currentContext);
+        requireNonNull(databind);
         requireNonNull(operation);
         requireNonNull(input);
     }
 
     /**
-     * Create an {@link OperationOutput} with equal {@link #currentContext()} and {@link #operation()}.
+     * Create an {@link OperationOutput} with equal {@link #databind()} and {@link #operation()}.
      *
      * @param output Output payload
      * @return An {@link OperationOutput}
      */
     public OperationOutput newOperationOutput(final @Nullable ContainerNode output) {
-        return new OperationOutput(currentContext, operation, output);
+        return new OperationOutput(databind, operation, output);
     }
 }
\ No newline at end of file
index 7b48973d86b498b2169a7d53048fba8ae9e9bc6d..6b191efbcc1246d7127f664774ee8d3789bc48db 100644 (file)
@@ -11,7 +11,8 @@ import static java.util.Objects.requireNonNull;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindAware;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
 
@@ -19,11 +20,11 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference
  * Output of {@link RpcImplementation#invoke(java.net.URI, OperationInput)}.
  */
 public record OperationOutput(
-        @NonNull DatabindContext currentContext,
+        @NonNull DatabindContext databind,
         @NonNull Inference operation,
-        @Nullable ContainerNode output) implements DatabindProvider {
+        @Nullable ContainerNode output) implements DatabindAware {
     public OperationOutput {
-        requireNonNull(currentContext);
+        requireNonNull(databind);
         requireNonNull(operation);
         if (output != null && output.isEmpty()) {
             output = null;
index b30f29b52465b40b75fe8e47e3256033b37878cc..367d4314a972294875d258ac6ccf3a291858d1ab 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.restconf.nb.rfc8040;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
index 909a8e952231c0dac1b2723b8c72b1daaa784618..afbae4ffacc0b322871a833b35d1880869220c2b 100644 (file)
@@ -11,7 +11,7 @@ import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
index 40935c4d1fe0fe34444f660217755511a0139acb..3803f53ddbd5506b5f379597fa355d2d45a3ad4a 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.legacy.InstanceIdentifierContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index d9119f4b86c6b1499bb0476048a0554ca77f5fe7..337aea42206b18c2a55dc97b388c62079fdb1135 100644 (file)
@@ -34,10 +34,10 @@ import org.opendaylight.restconf.api.query.WithDefaultsParam;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.Insert;
 import org.opendaylight.restconf.nb.rfc8040.ReceiveEventsParams;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.InstanceIdentifierContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.QueryParameters;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.WriterFieldsTranslator;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index 0ba34f3ba51df523e755f4bf3301e2cf76bb35d9..bda623865de6e6c61b7b218e13823fd0ce8a4c55 100644 (file)
@@ -30,7 +30,7 @@ import org.junit.runners.Parameterized.Parameters;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.errors.RestconfError;
 import org.opendaylight.restconf.nb.jaxrs.JaxRsMediaTypes;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index d5b8cd3cb90dcc3976ac4126522239fedeec71ef..b9541064bc6083e1ba1d7f7565a2b88d660d0ce0 100644 (file)
@@ -32,7 +32,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import org.opendaylight.restconf.api.query.ContentParam;
 import org.opendaylight.restconf.api.query.WithDefaultsParam;
 import org.opendaylight.restconf.common.patch.PatchStatusContext;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index 45be9c16d1427e96555ef67661a1b83f02a7ba8f..950e0989ff80b48a53ca924f8c1290991700730d 100644 (file)
@@ -29,7 +29,7 @@ import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
 import org.opendaylight.netconf.api.NetconfDocumentedException;
 import org.opendaylight.netconf.dom.api.NetconfDataTreeService;
 import org.opendaylight.restconf.common.patch.PatchStatusContext;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorSeverity;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
index 06d07fd263bb9fd924222d8722e8785c24059bbf..dbe7e0c4190e1f07730f663781242e0ed989cbd0 100644 (file)
@@ -36,7 +36,7 @@ import org.opendaylight.restconf.api.query.ChildNodesOnlyParam;
 import org.opendaylight.restconf.api.query.LeafNodesOnlyParam;
 import org.opendaylight.restconf.api.query.SkipNotificationDataParam;
 import org.opendaylight.restconf.nb.rfc8040.ReceiveEventsParams;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry;
 import org.opendaylight.restconf.server.mdsal.streams.dtcl.DataTreeChangeSource;
 import org.opendaylight.restconf.server.spi.DatabindProvider;
index 49ffb69173b49dd28e6d14998fd57d8dab74ef89..6ab29989332375be8b9f945a8c7ab0c846ff6bf8 100644 (file)
@@ -20,8 +20,8 @@ import org.junit.Test;
 import org.opendaylight.restconf.api.query.FieldsParam;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.AbstractJukeboxTest;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.InstanceIdentifierContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index d8cb55ac1afed74a72dc07258ca73cac10783cb0..e24c21d090b634e00be9580ad97e3a1ec61cef8e 100644 (file)
@@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import org.junit.jupiter.api.Test;
 import org.opendaylight.restconf.api.ApiPath;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
index 58225ad1a76966b69f3187a528a2c9c091bbb6cc..14d88f7c6f28b90bcc4405cea4845b531f650d3e 100644 (file)
@@ -21,8 +21,8 @@ import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl;
 import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService;
 import org.opendaylight.restconf.api.ApiPath;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
 import org.opendaylight.restconf.nb.rfc8040.legacy.ErrorTags;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index ca2c280d3da2fa9d016d910bddb67604632ca3bf..81f967db6dbd3e0c41e8daddb9189ffa8b1009ca 100644 (file)
@@ -18,7 +18,7 @@ import java.util.List;
 import java.util.Set;
 import org.junit.Test;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index e7643a1ea58a4296b54dd3b8304b5c6b22194bab..459c8f042cd11b2ecad3935592393aa4a525a22c 100644 (file)
@@ -14,7 +14,7 @@ import com.google.common.collect.ImmutableMap;
 import java.util.Map;
 import org.junit.jupiter.api.Test;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.QName;
index 43d4ebd833d93bb90f70505703790fd034d15f94..a974f683a63ff650ba394d99f548649df4ef76f5 100644 (file)
@@ -34,7 +34,7 @@ import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.databind.DatabindContext;
+import org.opendaylight.restconf.server.api.DatabindContext;
 import org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry;
 import org.opendaylight.restconf.server.spi.DatabindProvider;
 import org.opendaylight.restconf.server.spi.OperationInput;
@@ -177,6 +177,6 @@ class CreateNotificationStreamRpcTest {
             stack.enterDataTree(lfQName);
             builder.withChild(ImmutableNodes.leafNode(lfQName, leafValue));
         }
-        return new OperationInput(databindProvider.currentContext(), inference, builder.build());
+        return new OperationInput(databindProvider.currentDatabind(), inference, builder.build());
     }
 }