Split out operation output serialization 71/111271/4
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 4 Apr 2024 15:16:45 +0000 (17:16 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 5 Apr 2024 07:23:02 +0000 (09:23 +0200)
commit26ae5c5618b6b2529210186b8ac5135271919c78
treeb192b937fce1039f497e4a3891b2e6d0f821dc9f
parent6fd1eebd7c8973914339d2923f52e76c86c7d2bb
Split out operation output serialization

NormalizedNodePayload is quite overloaded, handling a ton of different
options.

This patch renames AbstractBody to RequestBody and creates its
counterpart ReplyBody. The JAX-RS serialization bit is handled through a
pair of MessageBodyWriters, which end up just calling ReplyBody methods.

We then define an OperationOutputBody, which handles the case of
RPC/action invocation result and stop using NormalizedNodePayload for
that purpose.

This also speeds up the entire process, as we can reuse JSON codecs
and not look them up again.

JIRA: NETCONF-773
Change-Id: Ib711451498f9bad485b69d14f6ae8195038ff506
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
22 files changed:
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/JaxRsRestconf.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/JsonReplyBodyWriter.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/ReplyBodyWriter.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/XmlReplyBodyWriter.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/JaxRsNorthbound.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/AbstractNormalizedNodeBodyWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/JsonNormalizedNodeBodyWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/XmlNormalizedNodeBodyWriter.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/server/api/ChildBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DataPostBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/DataPostResult.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/OperationInputBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/OperationOutputBody.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/PatchBody.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/ReplyBody.java [new file with mode: 0644]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/RequestBody.java [moved from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/AbstractBody.java with 86% similarity]
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/server/api/ResourceBody.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/AbstractRestconfTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/Netconf799Test.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/RestconfOperationsPostTest.java