From 764580bda679569a4005d004433ceb0d177dab80 Mon Sep 17 00:00:00 2001 From: Steven Malmgren <4smalmgren@gmail.com> Date: Mon, 14 Apr 2025 18:34:43 -0700 Subject: [PATCH 1/5] websocket updates --- ui-backend/catalog-ui-search/pom.xml | 15 ++++ .../ddf/catalog/ui/ws/KarafWebSocket.java | 20 +++++ .../ddf/catalog/ui/ws/WebSocketStart.java | 82 +++++++++++++++++++ .../ui/ws/WebsocketExampleServlet.java | 17 ++++ .../ui/ws/WebsocketUpgradeFilterWrapper.java | 12 +++ .../OSGI-INF/blueprint/blueprint.xml | 8 ++ .../OSGI-INF/blueprint/endpoints.xml | 28 ++++--- ui-backend/catalog-ui-websockets/pom.xml | 51 ++++++++++++ .../ui/websockets/CustomWebSocketCreator.java | 15 ++++ .../websockets/SearchCatalogWebSocket.java} | 23 ++++-- .../catalog/ui/websockets/StaticHolder.java | 11 +++ .../OSGI-INF/blueprint/blueprint.xml | 14 ++++ ui-backend/intrigue-ui-app/.java-version | 1 + .../src/main/resources/features.xml | 3 +- ui-backend/pom.xml | 1 + .../src/main/webapp/js/model/QueryResponse.ts | 2 +- 16 files changed, 283 insertions(+), 20 deletions(-) create mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java create mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java create mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java create mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java create mode 100644 ui-backend/catalog-ui-websockets/pom.xml create mode 100644 ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/CustomWebSocketCreator.java rename ui-backend/{catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/WebSocketContextHelper.java => catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/SearchCatalogWebSocket.java} (57%) create mode 100644 ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/StaticHolder.java create mode 100644 ui-backend/catalog-ui-websockets/src/main/resources/OSGI-INF/blueprint/blueprint.xml create mode 100644 ui-backend/intrigue-ui-app/.java-version diff --git a/ui-backend/catalog-ui-search/pom.xml b/ui-backend/catalog-ui-search/pom.xml index cab17995658..cafa3ecf8ec 100644 --- a/ui-backend/catalog-ui-search/pom.xml +++ b/ui-backend/catalog-ui-search/pom.xml @@ -41,6 +41,21 @@ ows-v_1_1_0-schema ${ows-v_1_0_0-schema.version} + + org.eclipse.jetty.websocket + websocket-server + ${jetty.version} + + + org.eclipse.jetty + jetty-http + ${jetty.version} + + + org.codice.ddf.search + catalog-ui-websockets + ${project.version} + org.jvnet.jaxb2_commons jaxb2-basics-runtime diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java new file mode 100644 index 00000000000..06139b93d0f --- /dev/null +++ b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java @@ -0,0 +1,20 @@ +package org.codice.ddf.catalog.ui.ws; + +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage; +import org.eclipse.jetty.websocket.api.annotations.WebSocket; + +@WebSocket +public class KarafWebSocket { + + @OnWebSocketConnect + public void onOpen(Session session) {} + + @OnWebSocketClose + public void onClose(Session session, int statusCode, String reason) {} + + @OnWebSocketMessage + public void onText(Session session, String message) {} +} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java new file mode 100644 index 00000000000..9a2128edf4f --- /dev/null +++ b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java @@ -0,0 +1,82 @@ +/** + * Copyright (c) Codice Foundation + * + *

This is free software: you can redistribute it and/or modify it under the terms of the GNU + * Lesser General Public License as published by the Free Software Foundation, either version 3 of + * the License, or any later version. + * + *

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public + * License is distributed along with this program and can be found at + * . + */ +package org.codice.ddf.catalog.ui.ws; + +import java.util.Dictionary; +import java.util.Hashtable; +import org.eclipse.jetty.http.pathmap.PathSpec; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter; +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; +import org.osgi.framework.BundleContext; +import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; + +public class WebSocketStart { + + private WebSocketCreator webSocketCreator; + + private BundleContext bundleContext; + + public WebSocketStart(BundleContext bundleContext, WebSocketCreator webSocketCreator) { + this.webSocketCreator = webSocketCreator; + this.bundleContext = bundleContext; + try { + start(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public void start() throws Exception { + + ServletContextHandler servletContextHandler = + new ServletContextHandler(ServletContextHandler.SESSIONS); + servletContextHandler.setContextPath("/search/catalog/ws"); + + ServletContextHandler notesServletContextHandler = + new ServletContextHandler(ServletContextHandler.SESSIONS); + servletContextHandler.setContextPath("/search/catalog/notes"); + + WebSocketUpgradeFilter filter = WebSocketUpgradeFilter.configureContext(servletContextHandler); + filter + .getConfiguration() + .addMapping(PathSpec.from("/*"), (req, res) -> webSocketCreator.createWebSocket(req, res)); + filter + .getConfiguration() + .addMapping(PathSpec.from("/ws"), (req, res) -> webSocketCreator.createWebSocket(req, res)); + + WebSocketUpgradeFilter notesFilter = + WebSocketUpgradeFilter.configureContext(notesServletContextHandler); + notesFilter + .getConfiguration() + .addMapping(PathSpec.from("/*"), (req, res) -> webSocketCreator.createWebSocket(req, res)); + notesFilter + .getConfiguration() + .addMapping(PathSpec.from("/ws"), (req, res) -> webSocketCreator.createWebSocket(req, res)); + + Dictionary properties = new Hashtable<>(); + properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, "/search/catalog/ws"); + properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, "websocketContextHelper"); + + Dictionary notesProperties = new Hashtable<>(); + notesProperties.put( + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, "/search/catalog/notes"); + notesProperties.put( + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, "noteWebsocketContextHelper"); + bundleContext.registerService(ServletContextHandler.class, servletContextHandler, properties); + + bundleContext.registerService( + ServletContextHandler.class, notesServletContextHandler, notesProperties); + } +} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java new file mode 100644 index 00000000000..d222556b5fa --- /dev/null +++ b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java @@ -0,0 +1,17 @@ +package org.codice.ddf.catalog.ui.ws; + +import javax.servlet.annotation.WebServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; + +@WebServlet( + name = "Example WebSocket Servlet", + urlPatterns = {"/example-websocket "} +) +public class WebsocketExampleServlet extends WebSocketServlet { + + @Override + public void configure(WebSocketServletFactory factory) { + factory.register(KarafWebSocket.class); + } +} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java new file mode 100644 index 00000000000..80289be52fe --- /dev/null +++ b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java @@ -0,0 +1,12 @@ +package org.codice.ddf.catalog.ui.ws; + +import org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter; +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; + +public class WebsocketUpgradeFilterWrapper extends WebSocketUpgradeFilter { + public WebsocketUpgradeFilterWrapper(WebSocketCreator webSocketCreator) { + + super(); + // this.addMapping("/*", webSocketCreator); + } +} diff --git a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/blueprint.xml index 962beee4e5d..390132c9228 100644 --- a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -393,6 +393,7 @@ Implementation details + @@ -425,6 +426,13 @@ Implementation details + + + + + + + + + + + + + + + + + + + + + + + + 4.0.0 + + backend + org.codice.ddf.search + 5.2.17-SNAPSHOT + + bundle + + catalog-ui-websockets + DDF :: Catalog :: UI :: Websockets + + + + ddf.security.servlet + security-servlet-web-socket-api + ${ddf.version} + + + + + + + org.apache.felix + maven-bundle-plugin + + + ${project.artifactId} + /search/catalog/ws + + + + + + + + diff --git a/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/CustomWebSocketCreator.java b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/CustomWebSocketCreator.java new file mode 100644 index 00000000000..b667a10d76e --- /dev/null +++ b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/CustomWebSocketCreator.java @@ -0,0 +1,15 @@ +package org.codice.ddf.catalog.ui.websockets; + +import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; + +public class CustomWebSocketCreator implements WebSocketCreator { + + @Override + public Object createWebSocket( + ServletUpgradeRequest servletUpgradeRequest, ServletUpgradeResponse servletUpgradeResponse) { + return StaticHolder.webSocketCreator.createWebSocket( + servletUpgradeRequest, servletUpgradeResponse); + } +} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/WebSocketContextHelper.java b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/SearchCatalogWebSocket.java similarity index 57% rename from ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/WebSocketContextHelper.java rename to ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/SearchCatalogWebSocket.java index 79249e563a8..395beac1aa6 100644 --- a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/WebSocketContextHelper.java +++ b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/SearchCatalogWebSocket.java @@ -11,13 +11,20 @@ * License is distributed along with this program and can be found at * . */ -package org.codice.ddf.catalog.ui; +package org.codice.ddf.catalog.ui.websockets; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.ServiceScope; -import org.osgi.service.http.context.ServletContextHelper; -import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardContext; +import javax.servlet.annotation.WebServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; -@Component(service = ServletContextHelper.class, scope = ServiceScope.BUNDLE) -@HttpWhiteboardContext(name = "websocketContextHelper", path = "/search/catalog/ws") -public class WebSocketContextHelper extends ServletContextHelper {} +@WebServlet( + name = "SearchCatalogWebsockets", + urlPatterns = {"/*", "/"}, + asyncSupported = true +) +public class SearchCatalogWebSocket extends WebSocketServlet { + @Override + public void configure(WebSocketServletFactory factory) { + factory.setCreator(new CustomWebSocketCreator()); + } +} diff --git a/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/StaticHolder.java b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/StaticHolder.java new file mode 100644 index 00000000000..718cf4c6adf --- /dev/null +++ b/ui-backend/catalog-ui-websockets/src/main/java/org/codice/ddf/catalog/ui/websockets/StaticHolder.java @@ -0,0 +1,11 @@ +package org.codice.ddf.catalog.ui.websockets; + +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; + +public class StaticHolder { + public static WebSocketCreator webSocketCreator; + + public StaticHolder(WebSocketCreator webSocketCreator) { + StaticHolder.webSocketCreator = webSocketCreator; + } +} diff --git a/ui-backend/catalog-ui-websockets/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/ui-backend/catalog-ui-websockets/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 00000000000..abd5f3491e9 --- /dev/null +++ b/ui-backend/catalog-ui-websockets/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ui-backend/intrigue-ui-app/.java-version b/ui-backend/intrigue-ui-app/.java-version new file mode 100644 index 00000000000..8326429d1b3 --- /dev/null +++ b/ui-backend/intrigue-ui-app/.java-version @@ -0,0 +1 @@ +corretto64-17.0.12 diff --git a/ui-backend/intrigue-ui-app/src/main/resources/features.xml b/ui-backend/intrigue-ui-app/src/main/resources/features.xml index cffe7a7d942..4b20fc45fce 100644 --- a/ui-backend/intrigue-ui-app/src/main/resources/features.xml +++ b/ui-backend/intrigue-ui-app/src/main/resources/features.xml @@ -76,6 +76,7 @@ mvn:org.codice.ddf.search/catalog-ui-enumeration/${project.version} mvn:com.google.code.gson/gson/${gson.version} mvn:org.codice.ddf.search/catalog-ui-splitter/${project.version} + mvn:org.codice.ddf.search/catalog-ui-websockets/${project.version} mvn:org.apache.commons/commons-math3/${commons-math3.version} mvn:org.codice.ddf.search/audit-api/${project.version} mvn:org.codice.ddf.search/audit-application/${project.version} @@ -88,7 +89,7 @@ wrap - wrap:mvn:org.checkerframework/checker-qual/2.0.0$Bundle-Name=checker-qual&Bundle-SymbolicName=checker-qual&Bundle-Version=2.0.0&Export-Package=org.checkerframework.checker.nullness.qual;version="2.0.0" + mvn:org.jetbrains.kotlin/kotlin-osgi-bundle/${kotlin-osgi.version} mvn:org.codice.thirdparty/javalin/${javalin.thirdparty.bundle.version} mvn:org.codice.ddf.search/javalin-utils/${project.version} diff --git a/ui-backend/pom.xml b/ui-backend/pom.xml index cb10e30cd75..70faf89e271 100644 --- a/ui-backend/pom.xml +++ b/ui-backend/pom.xml @@ -25,5 +25,6 @@ audit javalin-utils deprecatable-enumeration-api + catalog-ui-websockets diff --git a/ui-frontend/packages/catalog-ui-search/src/main/webapp/js/model/QueryResponse.ts b/ui-frontend/packages/catalog-ui-search/src/main/webapp/js/model/QueryResponse.ts index 30b4f786b03..b23d721d0b9 100644 --- a/ui-frontend/packages/catalog-ui-search/src/main/webapp/js/model/QueryResponse.ts +++ b/ui-frontend/packages/catalog-ui-search/src/main/webapp/js/model/QueryResponse.ts @@ -35,7 +35,7 @@ if (StartupDataStore.Configuration.getWebSocketsEnabled() && window.WebSocket) { // @ts-expect-error ts-migrate(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message const url = `${protocol[location.protocol]}//${location.hostname}:${ location.port - }${location.pathname}ws` + }${location.pathname}ws/` rpcInitial = new Client(url, { autoconnect: false }) // Only set rpc if the connection succeeds From d74002a7036cfbdc7bf5e616cf9f0fee15cecd47 Mon Sep 17 00:00:00 2001 From: Steven Malmgren <4smalmgren@gmail.com> Date: Tue, 15 Apr 2025 16:37:58 -0700 Subject: [PATCH 2/5] Unused code/gitignore for java version --- .gitignore | 3 +- .../ddf/catalog/ui/ws/KarafWebSocket.java | 20 ----- .../ddf/catalog/ui/ws/WebSocketStart.java | 82 ------------------- .../ui/ws/WebsocketExampleServlet.java | 17 ---- .../ui/ws/WebsocketUpgradeFilterWrapper.java | 12 --- .../OSGI-INF/blueprint/endpoints.xml | 2 +- ui-backend/intrigue-ui-app/.java-version | 1 - 7 files changed, 3 insertions(+), 134 deletions(-) delete mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java delete mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java delete mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java delete mode 100644 ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java delete mode 100644 ui-backend/intrigue-ui-app/.java-version diff --git a/.gitignore b/.gitignore index 07e8230707a..bdbbccd1176 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ release.properties dist/ yarn-debug.log* yarn-error.log* -ddf-ui-deplist.out \ No newline at end of file +ddf-ui-deplist.out +**/.java-version \ No newline at end of file diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java deleted file mode 100644 index 06139b93d0f..00000000000 --- a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/KarafWebSocket.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.codice.ddf.catalog.ui.ws; - -import org.eclipse.jetty.websocket.api.Session; -import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose; -import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect; -import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage; -import org.eclipse.jetty.websocket.api.annotations.WebSocket; - -@WebSocket -public class KarafWebSocket { - - @OnWebSocketConnect - public void onOpen(Session session) {} - - @OnWebSocketClose - public void onClose(Session session, int statusCode, String reason) {} - - @OnWebSocketMessage - public void onText(Session session, String message) {} -} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java deleted file mode 100644 index 9a2128edf4f..00000000000 --- a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebSocketStart.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright (c) Codice Foundation - * - *

This is free software: you can redistribute it and/or modify it under the terms of the GNU - * Lesser General Public License as published by the Free Software Foundation, either version 3 of - * the License, or any later version. - * - *

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public - * License is distributed along with this program and can be found at - * . - */ -package org.codice.ddf.catalog.ui.ws; - -import java.util.Dictionary; -import java.util.Hashtable; -import org.eclipse.jetty.http.pathmap.PathSpec; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; -import org.osgi.framework.BundleContext; -import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; - -public class WebSocketStart { - - private WebSocketCreator webSocketCreator; - - private BundleContext bundleContext; - - public WebSocketStart(BundleContext bundleContext, WebSocketCreator webSocketCreator) { - this.webSocketCreator = webSocketCreator; - this.bundleContext = bundleContext; - try { - start(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public void start() throws Exception { - - ServletContextHandler servletContextHandler = - new ServletContextHandler(ServletContextHandler.SESSIONS); - servletContextHandler.setContextPath("/search/catalog/ws"); - - ServletContextHandler notesServletContextHandler = - new ServletContextHandler(ServletContextHandler.SESSIONS); - servletContextHandler.setContextPath("/search/catalog/notes"); - - WebSocketUpgradeFilter filter = WebSocketUpgradeFilter.configureContext(servletContextHandler); - filter - .getConfiguration() - .addMapping(PathSpec.from("/*"), (req, res) -> webSocketCreator.createWebSocket(req, res)); - filter - .getConfiguration() - .addMapping(PathSpec.from("/ws"), (req, res) -> webSocketCreator.createWebSocket(req, res)); - - WebSocketUpgradeFilter notesFilter = - WebSocketUpgradeFilter.configureContext(notesServletContextHandler); - notesFilter - .getConfiguration() - .addMapping(PathSpec.from("/*"), (req, res) -> webSocketCreator.createWebSocket(req, res)); - notesFilter - .getConfiguration() - .addMapping(PathSpec.from("/ws"), (req, res) -> webSocketCreator.createWebSocket(req, res)); - - Dictionary properties = new Hashtable<>(); - properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, "/search/catalog/ws"); - properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, "websocketContextHelper"); - - Dictionary notesProperties = new Hashtable<>(); - notesProperties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, "/search/catalog/notes"); - notesProperties.put( - HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, "noteWebsocketContextHelper"); - bundleContext.registerService(ServletContextHandler.class, servletContextHandler, properties); - - bundleContext.registerService( - ServletContextHandler.class, notesServletContextHandler, notesProperties); - } -} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java deleted file mode 100644 index d222556b5fa..00000000000 --- a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketExampleServlet.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.codice.ddf.catalog.ui.ws; - -import javax.servlet.annotation.WebServlet; -import org.eclipse.jetty.websocket.servlet.WebSocketServlet; -import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; - -@WebServlet( - name = "Example WebSocket Servlet", - urlPatterns = {"/example-websocket "} -) -public class WebsocketExampleServlet extends WebSocketServlet { - - @Override - public void configure(WebSocketServletFactory factory) { - factory.register(KarafWebSocket.class); - } -} diff --git a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java b/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java deleted file mode 100644 index 80289be52fe..00000000000 --- a/ui-backend/catalog-ui-search/src/main/java/org/codice/ddf/catalog/ui/ws/WebsocketUpgradeFilterWrapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.codice.ddf.catalog.ui.ws; - -import org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; - -public class WebsocketUpgradeFilterWrapper extends WebSocketUpgradeFilter { - public WebsocketUpgradeFilterWrapper(WebSocketCreator webSocketCreator) { - - super(); - // this.addMapping("/*", webSocketCreator); - } -} diff --git a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml index 98821d4af8d..acff4de2d93 100644 --- a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml +++ b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml @@ -72,7 +72,7 @@ Services (HTTP/WS) that catalog-ui-search provides for the UI - + diff --git a/ui-backend/intrigue-ui-app/.java-version b/ui-backend/intrigue-ui-app/.java-version deleted file mode 100644 index 8326429d1b3..00000000000 --- a/ui-backend/intrigue-ui-app/.java-version +++ /dev/null @@ -1 +0,0 @@ -corretto64-17.0.12 From f9f4aa81a265248e073f0e8e8915158e7c01299d Mon Sep 17 00:00:00 2001 From: Steven Malmgren <4smalmgren@gmail.com> Date: Tue, 15 Apr 2025 16:41:04 -0700 Subject: [PATCH 3/5] unused code/wrong updates --- .../resources/OSGI-INF/blueprint/endpoints.xml | 18 +----------------- .../src/main/resources/features.xml | 2 +- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml index acff4de2d93..bee9f2cdf2a 100644 --- a/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml +++ b/ui-backend/catalog-ui-search/src/main/resources/OSGI-INF/blueprint/endpoints.xml @@ -45,22 +45,6 @@ Services (HTTP/WS) that catalog-ui-search provides for the UI - - - - - - - - - - - - - - - - + wrap:mvn:org.checkerframework/checker-qual/2.0.0$Bundle-Name=checker-qual&Bundle-SymbolicName=checker-qual&Bundle-Version=2.0.0&Export-Package=org.checkerframework.checker.nullness.qual;version="2.0.0" mvn:org.jetbrains.kotlin/kotlin-osgi-bundle/${kotlin-osgi.version} mvn:org.codice.thirdparty/javalin/${javalin.thirdparty.bundle.version} mvn:org.codice.ddf.search/javalin-utils/${project.version} From 23832fc81b949e438237adaa51612e35d8a9a91c Mon Sep 17 00:00:00 2001 From: Steven Malmgren <4smalmgren@gmail.com> Date: Tue, 15 Apr 2025 16:50:34 -0700 Subject: [PATCH 4/5] version --- ui-backend/catalog-ui-websockets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-backend/catalog-ui-websockets/pom.xml b/ui-backend/catalog-ui-websockets/pom.xml index 7901cbca558..8adb8754baa 100644 --- a/ui-backend/catalog-ui-websockets/pom.xml +++ b/ui-backend/catalog-ui-websockets/pom.xml @@ -17,7 +17,7 @@ backend org.codice.ddf.search - 5.2.17-SNAPSHOT + 5.2.19-SNAPSHOT bundle From a6bfebd5324561c76d37b61438e3a454df4f03eb Mon Sep 17 00:00:00 2001 From: Steven Malmgren <4smalmgren@gmail.com> Date: Mon, 21 Apr 2025 17:13:15 -0700 Subject: [PATCH 5/5] ddf version bump --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e3547d28189..b3682d70ce1 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 2.3.0 - 2.29.17 + 2.29.18 0.9 2.3.16 4.3