apache / apache/texera

Replace dropwizard-websockets with Jakarta WebSocket on Jetty 11

Open
#5,425 0 comments 0 reactions 1 assignee Claimed by @Yicong-Huang View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### Task Summary

`amber/build.sbt` depends on `com.liveperson:dropwizard-websockets:1.3.14` (last release 2018, Dropwizard 1.3.x only). The five amber WebSocket sites it powers:

- `amber/src/main/scala/org/apache/texera/web/resource/WorkflowWebsocketResource.scala`
- `amber/src/main/scala/org/apache/texera/web/resource/CollaborationResource.scala`
- `amber/src/main/scala/org/apache/texera/web/resource/pythonvirtualenvironment/PveWebsocketResource.scala`
- `amber/src/main/scala/org/apache/texera/web/resource/WebsocketPayloadSizeTuner.scala`
- `amber/src/main/scala/org/apache/texera/web/ServletAwareConfigurator.scala`

The resource classes use `@javax.websocket.server.ServerEndpoint` (JSR-356). Under Dropwizard 4 the equivalent annotation is `@jakarta.websocket.server.ServerEndpoint` and the runtime container moves from Jetty 9's Jakarta-flavoured WebSocket support to Jetty 11's `JakartaWebSocketServletContainerInitializer`. There is no Dropwizard-4-compatible build of `dropwizard-websockets`, so the bundle registration code in `TexeraWebApplication` and `ComputingUnitMaster` must be replaced with manual container wiring.

Part of #5423. Highest-risk sub-issue: collaborative editing and live workflow execution depend on these endpoints.

### Task Type

- [x] Refactor / Cleanup

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.