From b8211e69e92138b834197d40649f3943461f0d2f Mon Sep 17 00:00:00 2001 From: Athou Date: Mon, 15 Jan 2024 09:53:52 +0100 Subject: [PATCH] remove websocket bundle because it doesn't add much, use jetty directly --- commafeed-server/pom.xml | 9 ++++----- .../java/com/commafeed/CommaFeedApplication.java | 15 ++++++++------- .../com/commafeed/CommaFeedConfiguration.java | 11 +---------- 3 files changed, 13 insertions(+), 22 deletions(-) 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 {