List of usage examples for org.apache.http.nio.util SimpleOutputBuffer SimpleOutputBuffer
public SimpleOutputBuffer(int buffersize, final ByteBufferAllocator allocator)
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); } }