@SuppressWarnings("unchecked") @Override public final <T> T getEndpointInstance(Class<T> clazz) throws InstantiationException { return (T) getEndpoint(); }
@Override public ServerWebSocketContainer getContainer(HttpServletRequest request) { return (ServerWebSocketContainer) super.getContainer(request); }
@Override public void afterSingletonsInstantiated() { registerEndpoints(); }
private Object createTyrusEndpoint(Endpoint endpoint, String endpointPath, @Nullable String protocol, List<Extension> extensions, WebSocketContainer container, TyrusWebSocketEngine engine) throws DeploymentException { ServerEndpointRegistration endpointConfig = new ServerEndpointRegistration(endpointPath, endpoint); endpointConfig.setSubprotocols(Collections.singletonList(protocol)); endpointConfig.setExtensions(extensions); return createEndpoint(endpointConfig, this.componentProvider, container, engine); }
@Bean ServletServerContainerFactoryBean createWebSocketContainer() { ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean(); container.setMaxTextMessageBufferSize(42); return container; } }
@Test public void addServerEndpointConfigBeanWithExplicitServletContext() throws Exception { ServerEndpointRegistration endpointRegistration = new ServerEndpointRegistration("/dummy", new DummyEndpoint()); this.webAppContext.getBeanFactory().registerSingleton("dummyEndpoint", endpointRegistration); this.exporter.setServletContext(this.servletContext); this.exporter.setApplicationContext(this.webAppContext); this.exporter.afterPropertiesSet(); this.exporter.afterSingletonsInstantiated(); verify(this.serverContainer).addEndpoint(endpointRegistration); }
@Test public void endpointSingleton() throws Exception { EchoEndpoint endpoint = new EchoEndpoint(new EchoService()); ServerEndpointRegistration registration = new ServerEndpointRegistration("/path", endpoint); EchoEndpoint actual = registration.getConfigurator().getEndpointInstance(EchoEndpoint.class); assertSame(endpoint, actual); }
@Override public String toString() { return "ServerEndpointRegistration for path '" + getPath() + "': " + getEndpointClass(); }
@Override public List<WebSocketExtension> getSupportedExtensions(ServerHttpRequest request) { List<WebSocketExtension> extensions = this.extensions; if (extensions == null) { HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest(); extensions = getInstalledExtensions(getContainer(servletRequest)); this.extensions = extensions; } return extensions; }
private void unregisterTyrusEndpoint(TyrusWebSocketEngine engine, @Nullable Object tyrusEndpoint) { if (tyrusEndpoint != null) { try { unregister(engine, tyrusEndpoint); } catch (Throwable ex) { // ignore } } }
@Override protected List<WebSocketExtension> getInstalledExtensions(WebSocketContainer container) { try { return super.getInstalledExtensions(container); } catch (UnsupportedOperationException ex) { return new ArrayList<>(0); } }
@Bean public RequestUpgradeStrategy requestUpgradeStrategy() { return new TomcatRequestUpgradeStrategy(); } }
@Bean public EchoEndpoint javaConfigEndpoint() { return new EchoEndpoint(echoService()); }
@Bean public RequestUpgradeStrategy upgradeStrategy() { return new UndertowRequestUpgradeStrategy(); } }
@Bean public EchoService echoService() { return new EchoService(); } }
@Bean public EchoService echoService() { return new EchoService(); } }
@Bean public AnnotatedDummyEndpointBean annotatedEndpoint1() { return new AnnotatedDummyEndpointBean(); } }
@Test public void addServerEndpointConfigBean() throws Exception { ServerEndpointRegistration endpointRegistration = new ServerEndpointRegistration("/dummy", new DummyEndpoint()); this.webAppContext.getBeanFactory().registerSingleton("dummyEndpoint", endpointRegistration); this.exporter.setApplicationContext(this.webAppContext); this.exporter.afterPropertiesSet(); this.exporter.afterSingletonsInstantiated(); verify(this.serverContainer).addEndpoint(endpointRegistration); }
@Override public WsServerContainer getContainer(HttpServletRequest request) { return (WsServerContainer) super.getContainer(request); }
@Bean public RequestUpgradeStrategy requestUpgradeStrategy() { return new UndertowRequestUpgradeStrategy(); } }