Example usage for org.apache.http.nio.util SimpleOutputBuffer SimpleOutputBuffer

List of usage examples for org.apache.http.nio.util SimpleOutputBuffer SimpleOutputBuffer

Introduction

In this page you can find the example usage for org.apache.http.nio.util SimpleOutputBuffer SimpleOutputBuffer.

Prototype

public SimpleOutputBuffer(int buffersize, final ByteBufferAllocator allocator) 

Source Link

Usage

From source file:org.apache.synapse.transport.passthru.SourceHandler.java

/**
 * Create synapse.response-source-buffer for GET and HEAD Http methods
 * @param method  Http Method//from   ww w.j  a va  2  s  .  c  o m
 * @param request Source Request
 * @return OutputStream
 */
public OutputStream getOutputStream(String method, SourceRequest request) {
    OutputStream os = null;
    if (HttpMethod.GET.equals(method) || HttpMethod.HEAD.equals(method)) {
        HttpContext context = request.getConnection().getContext();
        ContentOutputBuffer outputBuffer = new SimpleOutputBuffer(sourceConfiguration.getIOBufferSize(),
                new HeapByteBufferAllocator());
        context.setAttribute("synapse.response-source-buffer", outputBuffer);
        os = new ContentOutputStream(outputBuffer);
    }
    return os;
}

From source file:org.siddhiesb.transport.passthru.SourceHandler.java

public void requestReceived(NHttpServerConnection conn) {
    try {//from  w w w.  jav  a2  s  .  com

        //System.out.println("============ SourceHandler : requestReceived ===============");

        HttpContext _context = conn.getContext();
        _context.setAttribute(PassThroughConstants.REQ_ARRIVAL_TIME, System.currentTimeMillis());

        if (!org.siddhiesb.transport.passthru.SourceContext.assertState(conn,
                org.siddhiesb.transport.passthru.ProtocolState.REQUEST_READY)
                && !org.siddhiesb.transport.passthru.SourceContext.assertState(conn,
                        org.siddhiesb.transport.passthru.ProtocolState.WSDL_RESPONSE_DONE)) {
            handleInvalidState(conn, "Request received");
            return;
        }
        // we have received a message over this connection. So we must inform the pool
        sourceConfiguration.getSourceConnections().useConnection(conn);

        // at this point we have read the HTTP Headers
        org.siddhiesb.transport.passthru.SourceContext.updateState(conn,
                org.siddhiesb.transport.passthru.ProtocolState.REQUEST_HEAD);

        SourceRequest request = new SourceRequest(sourceConfiguration, conn.getHttpRequest(), conn);

        org.siddhiesb.transport.passthru.SourceContext.setRequest(conn, request);

        request.start(conn);

        String method = request.getRequest() != null
                ? request.getRequest().getRequestLine().getMethod().toUpperCase()
                : "";
        OutputStream os = null;
        if ("GET".equals(method) || "HEAD".equals(method)) {
            HttpContext context = request.getConnection().getContext();
            ContentOutputBuffer outputBuffer = new SimpleOutputBuffer(8192, new HeapByteBufferAllocator());
            context.setAttribute("synapse.response-source-buffer", outputBuffer);
            os = new ContentOutputStream(outputBuffer);
        }

        sourceConfiguration.getWorkerPool().execute(new org.siddhiesb.transport.passthru.ServerWorker(request,
                sourceConfiguration, os, mediationEngine));
    } catch (HttpException e) {
        log.error(e.getMessage(), e);

        informReaderError(conn);

        org.siddhiesb.transport.passthru.SourceContext.updateState(conn,
                org.siddhiesb.transport.passthru.ProtocolState.CLOSED);
        sourceConfiguration.getSourceConnections().shutDownConnection(conn);
    } catch (IOException e) {
        logIOException(conn, e);

        informReaderError(conn);

        org.siddhiesb.transport.passthru.SourceContext.updateState(conn,
                org.siddhiesb.transport.passthru.ProtocolState.CLOSED);
        sourceConfiguration.getSourceConnections().shutDownConnection(conn);
    }
}