From 60d040e531cbc134604c0d450fd225a189be6030 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 22 Jul 2024 19:06:17 +0200 Subject: [PATCH] Move SSEStreamService We have specific implementation requirements around SSE integration in JAX-RS, most notably SSESender which uses a PingExecutor. Separate these out into restconf.nb.jaxrs to reduce their exposure. JIRA: NETCONF-773 Change-Id: Ia29e258e6b2f00297ec2a2d8bdc9df7dd83a1773 Signed-off-by: Robert Varga --- .../nb/{rfc8040/streams => jaxrs}/DefaultPingExecutor.java | 2 +- .../restconf/nb/{rfc8040/streams => jaxrs}/PingExecutor.java | 2 +- .../restconf/nb/{rfc8040/streams => jaxrs}/SSESender.java | 2 +- .../nb/{rfc8040/streams => jaxrs}/SSEStreamService.java | 5 +++-- .../org/opendaylight/restconf/nb/rfc8040/OSGiNorthbound.java | 2 +- .../rfc8040/streams/DefaultRestconfStreamServletFactory.java | 2 ++ .../nb/{rfc8040/streams => jaxrs}/SSESessionHandlerTest.java | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) rename restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/{rfc8040/streams => jaxrs}/DefaultPingExecutor.java (97%) rename restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/{rfc8040/streams => jaxrs}/PingExecutor.java (91%) rename restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/{rfc8040/streams => jaxrs}/SSESender.java (99%) rename restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/{rfc8040/streams => jaxrs}/SSEStreamService.java (94%) rename restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/{rfc8040/streams => jaxrs}/SSESessionHandlerTest.java (99%) diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultPingExecutor.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/DefaultPingExecutor.java similarity index 97% rename from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultPingExecutor.java rename to restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/DefaultPingExecutor.java index 1b3a74e185..028f221dd1 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultPingExecutor.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/DefaultPingExecutor.java @@ -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.streams; +package org.opendaylight.restconf.nb.jaxrs; import static java.util.Objects.requireNonNull; diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/PingExecutor.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/PingExecutor.java similarity index 91% rename from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/PingExecutor.java rename to restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/PingExecutor.java index 864430ac75..fdcc6af355 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/PingExecutor.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/PingExecutor.java @@ -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.streams; +package org.opendaylight.restconf.nb.jaxrs; import java.util.concurrent.TimeUnit; import org.eclipse.jdt.annotation.NonNullByDefault; diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESender.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSESender.java similarity index 99% rename from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESender.java rename to restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSESender.java index e2972e782c..4fc0e4d0e2 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESender.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSESender.java @@ -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.streams; +package org.opendaylight.restconf.nb.jaxrs; import static java.util.Objects.requireNonNull; diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSEStreamService.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSEStreamService.java similarity index 94% rename from restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSEStreamService.java rename to restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSEStreamService.java index 1df73145b8..a7485a98d9 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/SSEStreamService.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/SSEStreamService.java @@ -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.streams; +package org.opendaylight.restconf.nb.jaxrs; import static java.util.Objects.requireNonNull; @@ -23,6 +23,7 @@ import javax.ws.rs.sse.Sse; import javax.ws.rs.sse.SseEventSink; import javax.xml.xpath.XPathExpressionException; import org.opendaylight.restconf.api.QueryParameters; +import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; import org.opendaylight.restconf.server.api.EventStreamGetParams; import org.opendaylight.restconf.server.spi.RestconfStream; import org.opendaylight.restconf.server.spi.RestconfStream.EncodingName; @@ -42,7 +43,7 @@ public final class SSEStreamService { private final int maximumFragmentLength; private final int heartbeatInterval; - SSEStreamService(final RestconfStream.Registry streamRegistry, final PingExecutor pingExecutor, + public SSEStreamService(final RestconfStream.Registry streamRegistry, final PingExecutor pingExecutor, final StreamsConfiguration configuration) { this.streamRegistry = requireNonNull(streamRegistry); this.pingExecutor = requireNonNull(pingExecutor); diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/OSGiNorthbound.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/OSGiNorthbound.java index ac0779e86b..48eddb19cf 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/OSGiNorthbound.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/OSGiNorthbound.java @@ -11,7 +11,7 @@ import static java.util.Objects.requireNonNull; import java.util.Map; import org.opendaylight.restconf.api.query.PrettyPrintParam; -import org.opendaylight.restconf.nb.rfc8040.streams.DefaultPingExecutor; +import org.opendaylight.restconf.nb.jaxrs.DefaultPingExecutor; import org.opendaylight.restconf.nb.rfc8040.streams.DefaultRestconfStreamServletFactory; import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration; import org.osgi.framework.FrameworkUtil; diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultRestconfStreamServletFactory.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultRestconfStreamServletFactory.java index 386f5c5c42..c921c88322 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultRestconfStreamServletFactory.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/DefaultRestconfStreamServletFactory.java @@ -16,6 +16,8 @@ import javax.ws.rs.core.Application; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.aaa.web.servlet.ServletSupport; import org.opendaylight.restconf.api.query.PrettyPrintParam; +import org.opendaylight.restconf.nb.jaxrs.DefaultPingExecutor; +import org.opendaylight.restconf.nb.jaxrs.SSEStreamService; import org.opendaylight.restconf.nb.rfc8040.ErrorTagMapping; import org.opendaylight.restconf.server.spi.RestconfStream; import org.osgi.service.component.annotations.Activate; diff --git a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESessionHandlerTest.java b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/SSESessionHandlerTest.java similarity index 99% rename from restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESessionHandlerTest.java rename to restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/SSESessionHandlerTest.java index feca291669..96774825ef 100644 --- a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/SSESessionHandlerTest.java +++ b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/jaxrs/SSESessionHandlerTest.java @@ -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.streams; +package org.opendaylight.restconf.nb.jaxrs; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -- 2.36.6