remove websocket bundle because it doesn't add much, use jetty directly

This commit is contained in:
Athou
2024-01-15 09:53:52 +01:00
parent d7b2c5a6e3
commit b8211e69e9
3 changed files with 13 additions and 22 deletions

View File

@@ -263,16 +263,15 @@
<groupId>io.dropwizard.metrics</groupId> <groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-json</artifactId> <artifactId>metrics-json</artifactId>
</dependency> </dependency>
<dependency>
<groupId>be.tomcools</groupId>
<artifactId>dropwizard-websocket-jsr356-bundle</artifactId>
<version>4.0.0</version>
</dependency>
<dependency> <dependency>
<groupId>io.whitfin</groupId> <groupId>io.whitfin</groupId>
<artifactId>dropwizard-environment-substitutor</artifactId> <artifactId>dropwizard-environment-substitutor</artifactId>
<version>1.1.1</version> <version>1.1.1</version>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-jakarta-server</artifactId>
</dependency>
<dependency> <dependency>
<groupId>io.swagger.core.v3</groupId> <groupId>io.swagger.core.v3</groupId>

View File

@@ -7,6 +7,7 @@ import java.util.Set;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.eclipse.jetty.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.AvailableSettings;
import com.codahale.metrics.json.MetricsModule; import com.codahale.metrics.json.MetricsModule;
@@ -52,7 +53,6 @@ import com.google.inject.Injector;
import com.google.inject.Key; import com.google.inject.Key;
import com.google.inject.TypeLiteral; import com.google.inject.TypeLiteral;
import be.tomcools.dropwizard.websocket.WebsocketBundle;
import io.dropwizard.assets.AssetsBundle; import io.dropwizard.assets.AssetsBundle;
import io.dropwizard.configuration.DefaultConfigurationFactoryFactory; import io.dropwizard.configuration.DefaultConfigurationFactoryFactory;
import io.dropwizard.configuration.EnvironmentVariableSubstitutor; import io.dropwizard.configuration.EnvironmentVariableSubstitutor;
@@ -82,7 +82,6 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
public static final Instant STARTUP_TIME = Instant.now(); public static final Instant STARTUP_TIME = Instant.now();
private HibernateBundle<CommaFeedConfiguration> hibernateBundle; private HibernateBundle<CommaFeedConfiguration> hibernateBundle;
private WebsocketBundle<CommaFeedConfiguration> websocketBundle;
@Override @Override
public String getName() { public String getName() {
@@ -94,7 +93,6 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
configureEnvironmentSubstitutor(bootstrap); configureEnvironmentSubstitutor(bootstrap);
configureObjectMapper(bootstrap.getObjectMapper()); configureObjectMapper(bootstrap.getObjectMapper());
bootstrap.addBundle(websocketBundle = new WebsocketBundle<>());
bootstrap.addBundle(hibernateBundle = new HibernateBundle<>(AbstractModel.class, Feed.class, FeedCategory.class, FeedEntry.class, 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, FeedEntryContent.class, FeedEntryStatus.class, FeedEntryTag.class, FeedSubscription.class, User.class, UserRole.class,
UserSettings.class) { UserSettings.class) {
@@ -195,10 +193,13 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
} }
// WebSocket endpoint // WebSocket endpoint
ServerEndpointConfig serverEndpointConfig = ServerEndpointConfig.Builder.create(WebSocketEndpoint.class, "/ws") JakartaWebSocketServletContainerInitializer.configure(environment.getApplicationContext(), (context, container) -> {
.configurator(injector.getInstance(WebSocketConfigurator.class)) container.setDefaultMaxSessionIdleTimeout(config.getApplicationSettings().getWebsocketPingInterval().toMilliseconds() + 10000);
.build();
websocketBundle.addEndpoint(serverEndpointConfig); container.addEndpoint(ServerEndpointConfig.Builder.create(WebSocketEndpoint.class, "/ws")
.configurator(injector.getInstance(WebSocketConfigurator.class))
.build());
});
// Scheduled tasks // Scheduled tasks
Set<ScheduledTask> tasks = injector.getInstance(Key.get(new TypeLiteral<>() { Set<ScheduledTask> tasks = injector.getInstance(Key.get(new TypeLiteral<>() {

View File

@@ -10,8 +10,6 @@ import com.commafeed.backend.cache.RedisPoolFactory;
import com.commafeed.frontend.session.SessionHandlerFactory; import com.commafeed.frontend.session.SessionHandlerFactory;
import com.fasterxml.jackson.annotation.JsonProperty; 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.core.Configuration;
import io.dropwizard.db.DataSourceFactory; import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.util.Duration; import io.dropwizard.util.Duration;
@@ -25,7 +23,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class CommaFeedConfiguration extends Configuration implements WebsocketBundleConfiguration { public class CommaFeedConfiguration extends Configuration {
public enum CacheType { public enum CacheType {
NOOP, REDIS NOOP, REDIS
@@ -68,13 +66,6 @@ public class CommaFeedConfiguration extends Configuration implements WebsocketBu
this.gitCommit = properties.getProperty("git.commit.id.abbrev", "unknown"); 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 @Getter
@Setter @Setter
public static class ApplicationSettings { public static class ApplicationSettings {