Files
hapi-fhir-jpaserver-starter/src/test/java/ca/uhn/fhir/jpa/starter/JpaStarterWebsocketDispatcherConfig.java
2023-12-15 08:56:17 -05:00

35 lines
1.2 KiB
Java

package ca.uhn.fhir.jpa.starter;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee10.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* This class ensures that websockets work with
* Spring + Spring Boot + Jetty
*/
@Configuration
public class JpaStarterWebsocketDispatcherConfig {
@Bean
public Jetty12WebSocketServletWebServerCustomizer jetty10WebSocketServletWebServerCustomizer() {
return new Jetty12WebSocketServletWebServerCustomizer();
}
static class Jetty12WebSocketServletWebServerCustomizer implements WebServerFactoryCustomizer<JettyServletWebServerFactory> {
@Override
public void customize(JettyServletWebServerFactory factory) {
factory.addServerCustomizers(server -> {
WebAppContext ctx = (WebAppContext) server.getHandler();
JakartaWebSocketServletContainerInitializer.configure(ctx, null);
});
}
}
}