@Test public void getHandlerWithBeanFactory() { @SuppressWarnings("resource") ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(Config.class); BeanCreatingHandlerProvider<EchoHandler> provider = new BeanCreatingHandlerProvider<>(EchoHandler.class); provider.setBeanFactory(context.getBeanFactory()); assertNotNull(provider.getHandler()); }
private void destroyHandler(WebSocketSession session) { WebSocketHandler handler = this.handlers.remove(session); try { if (handler != null) { this.provider.destroy(handler); } } catch (Throwable ex) { if (logger.isWarnEnabled()) { logger.warn("Error while destroying " + handler, ex); } } }
@Override public String toString() { return "PerConnectionWebSocketHandlerProxy[handlerType=" + this.provider.getHandlerType() + "]"; }
@Test(expected = BeanInstantiationException.class) public void getHandlerNoBeanFactory() { BeanCreatingHandlerProvider<EchoHandler> provider = new BeanCreatingHandlerProvider<>(EchoHandler.class); provider.getHandler(); }
public AnnotatedEndpointConnectionManager(Class<?> endpointClass, String uriTemplate, Object... uriVariables) { super(uriTemplate, uriVariables); this.endpoint = null; this.endpointProvider = new BeanCreatingHandlerProvider<>(endpointClass); }
@Override public void setBeanFactory(BeanFactory beanFactory) { if (this.endpointProvider != null) { this.endpointProvider.setBeanFactory(beanFactory); } }
public Endpoint getEndpoint() { if (this.endpoint != null) { return this.endpoint; } else { Assert.state(this.endpointProvider != null, "No endpoint set"); return this.endpointProvider.getHandler(); } }
public PerConnectionWebSocketHandler(Class<? extends WebSocketHandler> handlerType, boolean supportsPartialMessages) { this.provider = new BeanCreatingHandlerProvider<>(handlerType); this.supportsPartialMessages = supportsPartialMessages; }
@Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (this.endpointProvider != null) { this.endpointProvider.setBeanFactory(beanFactory); } }
@Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { WebSocketHandler handler = this.provider.getHandler(); this.handlers.put(session, handler); handler.afterConnectionEstablished(session); }
@Test public void getHandlerSimpleInstantiation() { BeanCreatingHandlerProvider<SimpleEchoHandler> provider = new BeanCreatingHandlerProvider<>(SimpleEchoHandler.class); assertNotNull(provider.getHandler()); }
public EndpointConnectionManager(Class<? extends Endpoint> endpointClass, String uriTemplate, Object... uriVars) { super(uriTemplate, uriVars); Assert.notNull(endpointClass, "endpointClass must not be null"); this.endpoint = null; this.endpointProvider = new BeanCreatingHandlerProvider<>(endpointClass); }
@Override public void setBeanFactory(BeanFactory beanFactory) { if (this.endpointProvider != null) { this.endpointProvider.setBeanFactory(beanFactory); } }
@Override protected void openConnection() { this.taskExecutor.execute(() -> { try { if (logger.isInfoEnabled()) { logger.info("Connecting to WebSocket at " + getUri()); } Object endpointToUse = this.endpoint; if (endpointToUse == null) { Assert.state(this.endpointProvider != null, "No endpoint set"); endpointToUse = this.endpointProvider.getHandler(); } this.session = this.webSocketContainer.connectToServer(endpointToUse, getUri()); logger.info("Successfully connected to WebSocket"); } catch (Throwable ex) { logger.error("Failed to connect to WebSocket", ex); } }); }
@Override public Class<? extends Endpoint> getEndpointClass() { if (this.endpoint != null) { return this.endpoint.getClass(); } else { Assert.state(this.endpointProvider != null, "No endpoint set"); return this.endpointProvider.getHandlerType(); } }
private void destroyHandler(WebSocketSession session) { WebSocketHandler handler = this.handlers.remove(session); try { if (handler != null) { this.provider.destroy(handler); } } catch (Throwable ex) { if (logger.isWarnEnabled()) { logger.warn("Error while destroying " + handler, ex); } } }
/** * Create a new {@link ServerEndpointRegistration} instance from an * {@code javax.websocket.Endpoint} class. * @param path the endpoint path * @param endpointClass the endpoint class */ public ServerEndpointRegistration(String path, Class<? extends Endpoint> endpointClass) { Assert.hasText(path, "Path must not be empty"); Assert.notNull(endpointClass, "Endpoint Class must not be null"); this.path = path; this.endpoint = null; this.endpointProvider = new BeanCreatingHandlerProvider<>(endpointClass); }
@Override public void setBeanFactory(BeanFactory beanFactory) { this.provider.setBeanFactory(beanFactory); }
@Override protected void openConnection() { this.taskExecutor.execute(() -> { try { if (logger.isInfoEnabled()) { logger.info("Connecting to WebSocket at " + getUri()); } Endpoint endpointToUse = this.endpoint; if (endpointToUse == null) { Assert.state(this.endpointProvider != null, "No endpoint set"); endpointToUse = this.endpointProvider.getHandler(); } ClientEndpointConfig endpointConfig = this.configBuilder.build(); this.session = getWebSocketContainer().connectToServer(endpointToUse, endpointConfig, getUri()); logger.info("Successfully connected to WebSocket"); } catch (Throwable ex) { logger.error("Failed to connect to WebSocket", ex); } }); }
@Override public String toString() { return "PerConnectionWebSocketHandlerProxy[handlerType=" + this.provider.getHandlerType() + "]"; }