diff --git a/commafeed-server/pom.xml b/commafeed-server/pom.xml
index ca544237..c8ed9df4 100644
--- a/commafeed-server/pom.xml
+++ b/commafeed-server/pom.xml
@@ -263,16 +263,15 @@
io.dropwizard.metrics
metrics-json
-
- be.tomcools
- dropwizard-websocket-jsr356-bundle
- 4.0.0
-
io.whitfin
dropwizard-environment-substitutor
1.1.1
+
+ org.eclipse.jetty.websocket
+ websocket-jakarta-server
+
io.swagger.core.v3
diff --git a/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java b/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java
index 46d6e91b..7f8e79a3 100644
--- a/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java
+++ b/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java
@@ -7,6 +7,7 @@ import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.eclipse.jetty.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.hibernate.cfg.AvailableSettings;
import com.codahale.metrics.json.MetricsModule;
@@ -52,7 +53,6 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import be.tomcools.dropwizard.websocket.WebsocketBundle;
import io.dropwizard.assets.AssetsBundle;
import io.dropwizard.configuration.DefaultConfigurationFactoryFactory;
import io.dropwizard.configuration.EnvironmentVariableSubstitutor;
@@ -82,7 +82,6 @@ public class CommaFeedApplication extends Application {
public static final Instant STARTUP_TIME = Instant.now();
private HibernateBundle hibernateBundle;
- private WebsocketBundle websocketBundle;
@Override
public String getName() {
@@ -94,7 +93,6 @@ public class CommaFeedApplication extends Application {
configureEnvironmentSubstitutor(bootstrap);
configureObjectMapper(bootstrap.getObjectMapper());
- bootstrap.addBundle(websocketBundle = new WebsocketBundle<>());
bootstrap.addBundle(hibernateBundle = new HibernateBundle<>(AbstractModel.class, Feed.class, FeedCategory.class, FeedEntry.class,
FeedEntryContent.class, FeedEntryStatus.class, FeedEntryTag.class, FeedSubscription.class, User.class, UserRole.class,
UserSettings.class) {
@@ -195,10 +193,13 @@ public class CommaFeedApplication extends Application {
}
// WebSocket endpoint
- ServerEndpointConfig serverEndpointConfig = ServerEndpointConfig.Builder.create(WebSocketEndpoint.class, "/ws")
- .configurator(injector.getInstance(WebSocketConfigurator.class))
- .build();
- websocketBundle.addEndpoint(serverEndpointConfig);
+ JakartaWebSocketServletContainerInitializer.configure(environment.getApplicationContext(), (context, container) -> {
+ container.setDefaultMaxSessionIdleTimeout(config.getApplicationSettings().getWebsocketPingInterval().toMilliseconds() + 10000);
+
+ container.addEndpoint(ServerEndpointConfig.Builder.create(WebSocketEndpoint.class, "/ws")
+ .configurator(injector.getInstance(WebSocketConfigurator.class))
+ .build());
+ });
// Scheduled tasks
Set tasks = injector.getInstance(Key.get(new TypeLiteral<>() {
diff --git a/commafeed-server/src/main/java/com/commafeed/CommaFeedConfiguration.java b/commafeed-server/src/main/java/com/commafeed/CommaFeedConfiguration.java
index 9876a12f..2ecf54da 100644
--- a/commafeed-server/src/main/java/com/commafeed/CommaFeedConfiguration.java
+++ b/commafeed-server/src/main/java/com/commafeed/CommaFeedConfiguration.java
@@ -10,8 +10,6 @@ import com.commafeed.backend.cache.RedisPoolFactory;
import com.commafeed.frontend.session.SessionHandlerFactory;
import com.fasterxml.jackson.annotation.JsonProperty;
-import be.tomcools.dropwizard.websocket.WebsocketBundleConfiguration;
-import be.tomcools.dropwizard.websocket.WebsocketConfiguration;
import io.dropwizard.core.Configuration;
import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.util.Duration;
@@ -25,7 +23,7 @@ import lombok.Setter;
@Getter
@Setter
-public class CommaFeedConfiguration extends Configuration implements WebsocketBundleConfiguration {
+public class CommaFeedConfiguration extends Configuration {
public enum CacheType {
NOOP, REDIS
@@ -68,13 +66,6 @@ public class CommaFeedConfiguration extends Configuration implements WebsocketBu
this.gitCommit = properties.getProperty("git.commit.id.abbrev", "unknown");
}
- @Override
- public WebsocketConfiguration getWebsocketConfiguration() {
- WebsocketConfiguration config = new WebsocketConfiguration();
- config.setMaxSessionIdleTimeout(getApplicationSettings().getWebsocketPingInterval().toMilliseconds() + 10000);
- return config;
- }
-
@Getter
@Setter
public static class ApplicationSettings {