Example usage for io.netty.handler.codec.http HttpHeaders setDateHeader

List of usage examples for io.netty.handler.codec.http HttpHeaders setDateHeader

Introduction

In this page you can find the example usage for io.netty.handler.codec.http HttpHeaders setDateHeader.

Prototype

@Deprecated
public static void setDateHeader(HttpMessage message, CharSequence name, Iterable<Date> values) 

Source Link

Usage

From source file:com.barchart.netty.server.http.handlers.StaticResourceHandler.java

License:BSD License

@Override
public void handle(final HttpServerRequest request) throws IOException {

    try {//from ww  w .j  a va  2s . com

        final Resource resource = resolver.resolve(request.getPathInfo());

        if (resource.contentType() != null)
            request.response().setContentType(resource.contentType());

        // Set Cache-Control: public
        request.response().headers().add(HttpHeaders.Names.CACHE_CONTROL, HttpHeaders.Values.PUBLIC);

        if (!handleCache(request, resource)) {

            // Set modification time
            HttpHeaders.setDateHeader(request.response(), HttpHeaders.Names.LAST_MODIFIED,
                    new Date(resource.modified()));

            request.response().setContentLength((int) resource.size());

            // Chunked response for (potentially) large files
            if (resource.size() == 0 || resource.size() > 8192)
                request.response().setChunkSize(8192);

            IOUtils.copy(resource.stream(), request.response().getOutputStream());

        }

    } catch (final IOException e) {

        request.response().setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
        request.response().write("500 Server Error");

    } catch (final ResourceNotFoundException e) {

        request.response().setStatus(HttpResponseStatus.NOT_FOUND);
        request.response().write("404 Not Found");

    } finally {

        request.response().finish();

    }

}

From source file:com.bloom.zerofs.rest.NettyResponseChannel.java

License:Open Source License

/**
 * Sets the value of response headers after making sure that the response metadata is not already sent.
 * @param headerName The name of the header.
 * @param headerValue The intended value of the header.
 * @throws IllegalArgumentException if any of {@code headerName} or {@code headerValue} is null.
 * @throws IllegalStateException if response metadata has already been written to the channel.
 *//*from   w  ww.ja  va2  s  . c om*/
private void setResponseHeader(String headerName, Object headerValue) {
    if (headerName != null && headerValue != null) {
        long startTime = System.currentTimeMillis();
        if (headerValue instanceof Date) {
            HttpHeaders.setDateHeader(responseMetadata, headerName, (Date) headerValue);
        } else {
            HttpHeaders.setHeader(responseMetadata, headerName, headerValue);
        }
        if (responseMetadataWriteInitiated.get()) {
            nettyMetrics.deadResponseAccessError.inc();
            throw new IllegalStateException(
                    "Response metadata changed after it has already been written to the channel");
        } else {
            logger.trace("Header {} set to {} for channel {}", headerName,
                    responseMetadata.headers().get(headerName), ctx.channel());
            nettyMetrics.headerSetTimeInMs.update(System.currentTimeMillis() - startTime);
        }
    } else {
        throw new IllegalArgumentException(
                "Header name [" + headerName + "] or header value [" + headerValue + "] null");
    }
}

From source file:com.ebay.jetstream.http.netty.server.DefaultHttpServletResponse.java

License:MIT License

@Override
public void setDateHeader(String arg0, long arg1) {
    HttpHeaders.setDateHeader(m_nettyhttpresp, arg0, new Date(arg1));

}

From source file:com.github.ambry.rest.NettyResponseChannel.java

License:Open Source License

/**
 * Sets the value of response headers after making sure that the response metadata is not already sent.
 * @param headerName The name of the header.
 * @param headerValue The intended value of the header.
 * @throws IllegalArgumentException if any of {@code headerName} or {@code headerValue} is null.
 * @throws IllegalStateException if response metadata has already been written to the channel.
 *//* ww w .ja v a 2 s . c om*/
private void setResponseHeader(String headerName, Object headerValue) {
    if (headerName != null && headerValue != null) {
        long startTime = System.currentTimeMillis();
        if (headerValue instanceof Date) {
            HttpHeaders.setDateHeader(responseMetadata, headerName, (Date) headerValue);
        } else {
            HttpHeaders.setHeader(responseMetadata, headerName, headerValue);
        }
        if (responseMetadataWritten.get()) {
            nettyMetrics.deadResponseAccessError.inc();
            throw new IllegalStateException(
                    "Response metadata changed after it has already been written to the channel");
        } else {
            logger.trace("Header {} set to {} for channel {}", headerName,
                    responseMetadata.headers().get(headerName), ctx.channel());
            nettyMetrics.headerSetTimeInMs.update(System.currentTimeMillis() - startTime);
        }
    } else {
        throw new IllegalArgumentException(
                "Header name [" + headerName + "] or header value [" + headerValue + "] null");
    }
}

From source file:com.github.ambry.rest.NettyResponseChannelTest.java

License:Open Source License

/**
 * Creates a {@link HttpRequest} with some headers set that will be checked on response.
 * @param httpMethod the {@link HttpMethod} desired.
 * @param uri the URI to hit.//  ww  w  . j av a  2s . c  o m
 * @return a link {@link HttpRequest} with some headers set.
 */
private HttpRequest createRequestWithHeaders(HttpMethod httpMethod, String uri) {
    long currentTime = System.currentTimeMillis();
    HttpRequest request = RestTestUtils.createRequest(httpMethod, uri, null);
    HttpHeaders.setHeader(request, HttpHeaders.Names.CONTENT_TYPE, "dummy/content-type");
    HttpHeaders.setHeader(request, HttpHeaders.Names.CONTENT_LENGTH, 100);
    HttpHeaders.setHeader(request, HttpHeaders.Names.LOCATION, "dummyLocation");
    HttpHeaders.setDateHeader(request, HttpHeaders.Names.LAST_MODIFIED, new Date(currentTime));
    HttpHeaders.setDateHeader(request, HttpHeaders.Names.EXPIRES, new Date(currentTime + 1));
    HttpHeaders.setHeader(request, HttpHeaders.Names.CACHE_CONTROL, "dummyCacheControl");
    HttpHeaders.setHeader(request, HttpHeaders.Names.PRAGMA, "dummyPragma");
    HttpHeaders.setDateHeader(request, HttpHeaders.Names.DATE, new Date(currentTime + 2));
    HttpHeaders.setHeader(request, MockNettyMessageProcessor.CUSTOM_HEADER_NAME, "customHeaderValue");
    return request;
}

From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java

License:Apache License

public void setDateHeader(CharSequence name, Date value) {
    HttpHeaders.setDateHeader(nettyRequest, name, value);
}

From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java

License:Apache License

public void setDateHeader(CharSequence name, Iterable<Date> values) {
    HttpHeaders.setDateHeader(nettyRequest, name, values);
}

From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java

License:Apache License

public void setDateHeader(String name, Date value) {
    HttpHeaders.setDateHeader(nettyRequest, name, value);
}

From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java

License:Apache License

public void setDateHeader(String name, Iterable<Date> values) {
    HttpHeaders.setDateHeader(nettyRequest, name, values);
}

From source file:io.reactivex.netty.protocol.http.server.HttpResponseHeaders.java

License:Apache License

public void setDateHeader(CharSequence name, Date value) {
    HttpHeaders.setDateHeader(nettyResponse, name, value);
}