+ vaadinServletConfig.getServletName()); try { atmosphere = initAtmosphere(vaadinServletConfig); + vaadinServletConfig.getServletName()); atmosphere.getAtmosphereConfig().getInitParameter( com.vaadin.server.Constants.SERVLET_PARAMETER_PUSH_SUSPEND_TIMEOUT_LONGPOLLING, -1)); for (AtmosphereHandlerWrapper handlerWrapper : atmosphere .getAtmosphereHandlers().values()) { AtmosphereHandler handler = handlerWrapper.atmosphereHandler; if (handler instanceof PushAtmosphereHandler) {
@Override public void configure(AtmosphereConfig config) { if (config.getServletContext().getServerInfo().contains("jetty")) { config.framework().setAsyncSupport(new JettyAsyncSupport( config)); } }
@Ready public void onReady(AtmosphereResource resource) throws Exception { factory = resource.getAtmosphereConfig().getBroadcasterFactory(); resourceFactory = resource.getAtmosphereConfig().resourcesFactory(); notificationService = (NotificationService) resource.getAtmosphereConfig().getServletContext().getAttribute(AtmosphereModule.NOTIFICATION_SERVICE); if(!notificationService.subscribe(topicName, resource)) { logger.debug("Subscription to topic {} refused (resource: {})", topicName, resource); close(resource); } }
@Override public void configure(AtmosphereConfig config) { servletPath = IOUtils.guestServletPath(config); config.framework().getAtmosphereConfig().properties().put("servletPath", servletPath); this.config = config; }
@Override public void configure(AtmosphereConfig config) { heartbeat = config.getBroadcasterFactory().lookup(DefaultBroadcaster.class, "/swaggersocket.heartbeat"); if (heartbeat == null) { heartbeat = config.getBroadcasterFactory().get(DefaultBroadcaster.class, "/swaggersocket.heartbeat"); } lazywrite = config.getInitParameter("io.swagger.swaggersocket.protocol.lazywrite", false); emptyentity = config.getInitParameter("io.swagger.swaggersocket.protocol.emptyentity", false); String p = config.getInitParameter("io.swagger.swaggersocket.protocol.includedheaders"); if (p != null) { includedheaders = Pattern.compile(p, Pattern.CASE_INSENSITIVE); } p = config.getInitParameter("io.swagger.swaggersocket.protocol.excludedheaders"); if (p != null) { excludedheaders = Pattern.compile(p, Pattern.CASE_INSENSITIVE); } }
Injector injector = (Injector) framework().getAtmosphereConfig().getServletContext().getAttribute(Injector.class.getName()); GuiceContainer guiceServlet = injector.getInstance(GuiceContainer.class); Thread.currentThread().getContextClassLoader().loadClass(JERSEY_CONTAINER); setDefaultBroadcasterClassName(broadcasterClassName) .setUseStreamForFlushingComments(true) .getAtmosphereConfig().setSupportSession(false); isJersey = true; } catch (Throwable t) { String mapping = sc.getInitParameter(ApplicationConfig.PROPERTY_SERVLET_MAPPING); if (mapping == null) { mapping = "/*";
@Override protected void configureDetectedFramework(ReflectorServletProcessor rsp, boolean isJersey) { if (isJersey) { logger.info("Configuring Guice for Atmosphere Jersey"); Injector injector = (Injector) getAtmosphereConfig().getServletContext().getAttribute(Injector.class.getName()); GuiceContainer guiceServlet = injector.getInstance(GuiceContainer.class); rsp.setServlet(guiceServlet); try { Map<String, String> props = injector.getInstance( Key.get(new TypeLiteral<Map<String, String>>() { }, Names.named(PROPERTIES))); if (props != null) { for (String p : props.keySet()) { addInitParameter(p, props.get(p)); } } } catch (Exception ex) { // Do not fail logger.debug("failed to add Jersey init parameters to Atmosphere servlet", ex.getCause()); } } } }
private void ensureInitialized(AtmosphereResource resource) { if (userRepository == null) { Injector injector = (Injector) resource.getAtmosphereConfig().getServletContext().getAttribute(Injector.class.getName()); injector.injectMembers(this); } if (broadcastConsumer == null) { broadcastConsumer = new WorkQueueRepository.BroadcastConsumer() { @Override public void broadcastReceived(JSONObject json) { if (broadcaster != null) { broadcaster.broadcast(json.toString()); } } }; this.workQueueRepository.subscribeToBroadcastMessages(broadcastConsumer); } broadcaster = resource.getBroadcaster(); }
/** * Return the container's name. */ public String getContainerName() { return config.getServletConfig().getServletContext().getServerInfo() + " with WebSocket enabled."; }
public void configure() { if (config.getServletConfig().getInitParameter(REDIS_AUTH) != null) { authToken = config.getServletConfig().getInitParameter(REDIS_AUTH); if (config.getServletConfig().getInitParameter(REDIS_SERVER) != null) { uri = URI.create(config.getServletConfig().getInitParameter(REDIS_SERVER)); } else if (uri == null) { throw new NullPointerException("uri cannot be null"); if (config.getServletConfig().getInitParameter(REDIS_SHARED_POOL) != null) { sharedPool = Boolean.parseBoolean(config.getServletConfig().getInitParameter(REDIS_SHARED_POOL)); if (config.properties().get(REDIS_SHARED_POOL) != null) { jedisPool = (JedisPool) config.properties().get(REDIS_SHARED_POOL); config.properties().put(REDIS_SHARED_POOL, jedisPool); } else { disconnectSubscriber();
if (config.getServletConfig().getInitParameter(XMPP_AUTH) != null) { authToken = config.getServletConfig().getInitParameter(XMPP_AUTH); } else { throw new IllegalStateException("No authorization token specified. Please make sure your web.xml contains:" + if (config.getServletConfig().getInitParameter(XMPP_SERVER) != null) { uri = URI.create(config.getServletConfig().getInitParameter(XMPP_SERVER)); } else if (uri == null) { throw new NullPointerException("uri cannot be null"); if (config.getServletConfig().getInitParameter(XMPP_DEBUG) != null) { XMPPConnection.DEBUG_ENABLED = true;
producer = (KafkaProducer) config.properties().get("producer"); Set<String> topics = (Set<String>) config.properties().get("topics"); if (topics == null) { topics = new HashSet<String>(); config.properties().put("topics", topics); String load = config.getInitParameter(PROPERTIES_FILE, null); Properties props = new Properties(); if (load != null) { try { props.load(config.getServletContext().getResourceAsStream(load)); } catch (IOException e) { throw new RuntimeException(e); config.properties().put("producer", producer);
.getAttribute(ApplicationConfig.SUSPENDED_ATMOSPHERE_RESOURCE_UUID); final AtmosphereResponse suspendedResponse = suspendedResponses.get(saruuid); LOG.fine("Attaching a proxy writer to suspended response"); r.getResponse().asyncIOWriter(new AtmosphereInterceptorWriter() { @Override public AsyncIOWriter write(AtmosphereResponse r, String data) throws IOException { r.getResponse().destroyable(false); return Action.CONTINUE; if (request.getAttribute(REQUEST_DISPATCHED) == null) { AtmosphereResponse response = null; AtmosphereFramework framework = r.getAtmosphereConfig().framework(); try { byte[] data = WebSocketUtils.readBody(request.getInputStream()); response.request(ar); attachWriter(r); Action action = framework.doCometSupport(ar, response);
@Override public Action inspect(final AtmosphereResource r) { final AtmosphereRequest request = r.getRequest(); r.addEventListener(new AtmosphereResourceEventListenerAdapter() { if (request.getHeader("SwaggerSocket") != null) { ok = true; if (ok && request.attributes().get(SWAGGER_SOCKET_DISPATCHED) == null) { AtmosphereResponse response = new WrappedAtmosphereResponse(r.getResponse(), request); logger.debug("Method {} Transport {}", request.getMethod(), r.transport()); if (request.getMethod() == "GET" && r.transport().equals(AtmosphereResource.TRANSPORT.LONG_POLLING)) { AtmosphereFramework framework = r.getAtmosphereConfig().framework(); StringBuilder d = new StringBuilder(); try { response.setContentType("application/json"); response.getOutputStream().write(mapper.writeValueAsBytes(statusMessage)); if (r.transport() == AtmosphereResource.TRANSPORT.WEBSOCKET) { request.setAttribute("swaggerSocketRequest", req);
@Override public Action inspect(AtmosphereResource r) { final AtmosphereRequest request = r.getRequest(); if (request.getHeader("SwaggerSocket") != null && request.getAttribute(SWAGGER_SOCKET_DISPATCHED) == null && r.transport() != AtmosphereResource.TRANSPORT.WEBSOCKET) { AtmosphereResponse response = r.getResponse(); response.setContentType("application/json"); if (request.getMethod() == "GET") { BlockingQueue<AtmosphereResource> queue = (BlockingQueue<AtmosphereResource>) request.getSession().getAttribute("PendingResource"); if (queue == null) { AtmosphereFramework framework = r.getAtmosphereConfig().framework(); response.asyncIOWriter(new AsyncIOWriterAdapter() { response.getOutputStream().write(mapper.writeValueAsBytes(statusMessage)); ar.setAttribute(SWAGGER_SOCKET_DISPATCHED, "true"); framework.doCometSupport(ar, response.request(ar).destroyable(false)); } catch (ServletException e) { logger.warn("", e);
public static boolean isJetty(AtmosphereResource r) { final String container = r.getAtmosphereConfig().getServletContext().getServerInfo(); if (container != null && container.toLowerCase().indexOf("jetty") != -1) { return true; } return false; } }
public JettyAsyncSupport(AtmosphereConfig config) { super(config); final WebSocketProcessor webSocketProcessor = WebSocketProcessorFactory.getDefault().getWebSocketProcessor(config.framework()); WebSocketFactory wsf; try { String[] jettyVersion = config.getServletContext().getServerInfo().substring(6).split("\\."); if (Integer.valueOf(jettyVersion[0]) > 7 || Integer.valueOf(jettyVersion[0]) == 7 && Integer.valueOf(jettyVersion[1]) > 4) { wsf = JettyWebSocketUtil.getFactory(config, webSocketProcessor); } else { wsf = null; } } catch (Throwable e) { // If we can't parse Jetty version, assume it's 8 and up. try { logger.trace("Unable to parse Jetty version {}", config.getServletContext().getServerInfo()); } catch (Throwable t) { } wsf = JettyWebSocketUtil.getFactory(config, webSocketProcessor); } webSocketFactory = wsf; }
static void writeResponse(AtmosphereResource resource, Object message) throws IOException { try { RPCRequest rpcRequest = (RPCRequest) resource.getRequest().getAttribute(AtmospherePollService.GWT_REQUEST); String response = encodeResponse(rpcRequest, message); writeResponse(resource.getRequest(), resource.getResponse(), resource.getAtmosphereConfig().getServletContext(), response); } catch (IncompatibleRemoteServiceException ex) { try { String error = RPC.encodeResponseForFailure(null, ex); writeResponse(resource.getRequest(), resource.getResponse(), resource.getAtmosphereConfig().getServletContext(), error); } catch (SerializationException ex2) { throw new IOException(ex2); } } catch (SerializationException ex) { throw new IOException(ex); } }
@Override public void resume() { try { r.getAtmosphereConfig().framework().doCometSupport(r.getRequest(), r.getResponse()); } catch (IOException e) { logger.warn("",e); } catch (ServletException e) { logger.warn("", e); } r.resume(); }
public final static void broadcast(final AtmosphereResource r, final AtmosphereResourceEvent e, final Broadcaster broadcaster) { AtmosphereRequest request = r.getRequest(); ContainerResponse cr = null; cr = (ContainerResponse) request.getAttribute(FrameworkConfig.CONTAINER_RESPONSE); if (cr == null || !r.isSuspended() && !r.getAtmosphereResourceEvent().isResumedOnTimeout()) { if (cr == null) { logger.warn("Unexpected state. ContainerResponse has been resumed. Caching message {} for {}", DefaultBroadcaster.class.cast(broadcaster).cacheLostMessage(r, true); AtmosphereResourceImpl.class.cast(r)._destroy(); return; if (request.getAttribute(FrameworkConfig.EXPECTED_CONTENT_TYPE) != null) { m = (String) request.getAttribute(FrameworkConfig.EXPECTED_CONTENT_TYPE); m = r.getAtmosphereConfig().getInitParameter(ApplicationConfig.SSE_CONTENT_TYPE); if (m == null) { m = "text/plain";