Disconnect HTTPServer from RequestDispatcher 36/113436/18
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 4 Sep 2024 23:52:57 +0000 (01:52 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 10 Sep 2024 06:47:47 +0000 (08:47 +0200)
commit8e494b8f56e2cf10ddbfeeaeb34b9cffefd1c32f
tree60e3997841959f2026e27c3e5fe802fe5d3b53ba
parent8240db0215b7944a19bf33f8e7ee05e32d8a2d02
Disconnect HTTPServer from RequestDispatcher

RequestDispatcher is useless layering violation sitting between Netty
pipeline and RESTCONF protocol implementation.

Do not use RequestDispatcher in HTTPServer and instead use
onTransportChannelEstablished() to wire a RestconfSession into the
pipeline.

This means we have centralized protocol-level initialization at the
correct layer and a proper class interfacing between a particular Netty
channel and the RestconfServer.

RestconfRequestDispatcher now becomes a private implementation detail,
acting as a the common router between RestconfSession and
RestconfServer (et al.).

A follow-up patch will deal with exposing RestconfSession from
NettyServerRequest.

JIRA: NETCONF-1379
Change-Id: Ie24e440dbf24a850428902076175fb569981d0d9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
13 files changed:
protocol/restconf-server/pom.xml
protocol/restconf-server/src/main/java/org/opendaylight/restconf/server/NettyEndpoint.java
protocol/restconf-server/src/main/java/org/opendaylight/restconf/server/NettyServerRequest.java
protocol/restconf-server/src/main/java/org/opendaylight/restconf/server/RestconfRequestDispatcher.java
protocol/restconf-server/src/main/java/org/opendaylight/restconf/server/RestconfSession.java [new file with mode: 0644]
protocol/restconf-server/src/main/java/org/opendaylight/restconf/server/RestconfTransportChannelListener.java
protocol/restconf-server/src/test/java/org/opendaylight/restconf/server/AbstractRequestProcessorTest.java
transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/HTTPServer.java
transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/PlainHTTPServer.java
transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/RequestDispatcher.java
transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/TlsHTTPServer.java
transport/transport-http/src/test/java/org/opendaylight/netconf/transport/http/HttpClientServerTest.java
transport/transport-http/src/test/java/org/opendaylight/netconf/transport/http/SseClientServerTest.java