@Override protected void handshake(final Runnable handler) throws Exception { /** Infinite timeout because the continuation is never resumed but only completed on close. */ req.getAsyncContext().setTimeout(0L); /** Server sent events headers. */ rsp.setStatus(HttpServletResponse.SC_OK); rsp.setHeader("Connection", "Close"); rsp.setContentType("text/event-stream; charset=utf-8"); rsp.flushBuffer(); HttpChannel channel = rsp.getHttpChannel(); Connector connector = channel.getConnector(); Executor executor = connector.getExecutor(); executor.execute(handler); }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1l; else _contentLength = Long.parseLong(value); } } }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1l; else _contentLength = Long.parseLong(value); } } }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1l; else _contentLength = Long.parseLong(value); } } }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1l; else _contentLength = Long.parseLong(value); } } }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1l; else _contentLength = Long.parseLong(value); } } }
public void addHeader(String name, String value) { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) { setContentType(value); return; } _connection.getResponseFields().add(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) _connection._generator.setContentLength(Long.parseLong(value)); }
public void addHeader(String name, String value) { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) { setContentType(value); return; } _connection.getResponseFields().add(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) _connection._generator.setContentLength(Long.parseLong(value)); }
public void addHeader(String name, String value) { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) { setContentType(value); return; } _connection.getResponseFields().add(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) _connection._generator.setContentLength(Long.parseLong(value)); }
public void setHeader(HttpHeader name, String value) { if (HttpHeader.CONTENT_TYPE == name) setContentType(value); else { if (isIncluding()) return; _fields.put(name, value); if (HttpHeader.CONTENT_LENGTH == name) { if (value == null) _contentLength = -1L; else _contentLength = Long.parseLong(value); } } }
public void addHeader(String name, String value) { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) { setContentType(value); return; } _connection.getResponseFields().add(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) _connection._generator.setContentLength(Long.parseLong(value)); }
public void setHeader(String name, String value) { if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) setContentType(value); else { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } _connection.getResponseFields().put(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) { if (value==null) _connection._generator.setContentLength(-1); else _connection._generator.setContentLength(Long.parseLong(value)); } } }
public void setHeader(String name, String value) { if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) setContentType(value); else { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } _connection.getResponseFields().put(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) { if (value==null) _connection._generator.setContentLength(-1); else _connection._generator.setContentLength(Long.parseLong(value)); } } }
public void setHeader(String name, String value) { if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) setContentType(value); else { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } _connection.getResponseFields().put(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) { if (value==null) _connection._generator.setContentLength(-1); else _connection._generator.setContentLength(Long.parseLong(value)); } } }
public void setHeader(String name, String value) { if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) setContentType(value); else { if (_connection.isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name=name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } _connection.getResponseFields().put(name, value); if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) { if (value==null) _connection._generator.setContentLength(-1); else _connection._generator.setContentLength(Long.parseLong(value)); } } }
@Override public void addHeader(String name, String value) { if (isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name = name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeader.CONTENT_TYPE.is(name)) { setContentType(value); return; } if (HttpHeader.CONTENT_LENGTH.is(name)) { setHeader(name,value); return; } _fields.add(name, value); }
@Override public void addHeader(String name, String value) { if (isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name = name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeader.CONTENT_TYPE.is(name)) { setContentType(value); return; } if (HttpHeader.CONTENT_LENGTH.is(name)) { setHeader(name,value); return; } _fields.add(name, value); }
@Override public void addHeader(String name, String value) { if (isIncluding()) { if (name.startsWith(SET_INCLUDE_HEADER_PREFIX)) name = name.substring(SET_INCLUDE_HEADER_PREFIX.length()); else return; } if (HttpHeader.CONTENT_TYPE.is(name)) { setContentType(value); return; } if (HttpHeader.CONTENT_LENGTH.is(name)) { setHeader(name,value); return; } _fields.add(name, value); }
@Override protected void handshake(final Runnable handler) throws Exception { /** Infinite timeout because the continuation is never resumed but only completed on close. */ req.getAsyncContext().setTimeout(0L); /** Server sent events headers. */ rsp.setStatus(HttpServletResponse.SC_OK); rsp.setHeader("Connection", "Close"); rsp.setContentType("text/event-stream; charset=utf-8"); rsp.flushBuffer(); HttpChannel channel = rsp.getHttpChannel(); Connector connector = channel.getConnector(); Executor executor = connector.getExecutor(); executor.execute(handler); }
public void setHeaders(HttpContent httpContent) { Response response = _channel.getResponse(); String contentType = httpContent.getContentType(); if (contentType != null && !response.getHttpFields().containsKey(HttpHeader.CONTENT_TYPE.asString())) setContentType(contentType); if (httpContent.getContentLength() > 0) setLongContentLength(httpContent.getContentLength()); String lm = httpContent.getLastModified(); if (lm != null) response.getHttpFields().put(HttpHeader.LAST_MODIFIED, lm); else if (httpContent.getResource() != null) { long lml = httpContent.getResource().lastModified(); if (lml != -1) response.getHttpFields().putDateField(HttpHeader.LAST_MODIFIED, lml); } String etag=httpContent.getETag(); if (etag!=null) response.getHttpFields().put(HttpHeader.ETAG,etag); }