org.apache.coyote.http11

## Class Http11AprProcessor

- java.lang.Object
- - org.apache.coyote.AbstractProcessor<S>
  - - org.apache.coyote.http11.AbstractHttp11Processor<Long>
    - - org.apache.coyote.http11.Http11AprProcessor

- All Implemented Interfaces:
    ActionHook, Processor<Long>

      public class Http11AprProcessor
      extends AbstractHttp11Processor<Long>

  Processes HTTP requests.
  Author:
    Remy Maucherat

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `clientCertProvider` When client certificate information is presented in a form other than instances of `X509Certificate` it needs to be converted before it can be used and this property controls which JSSE provider is used to perform the conversion.
    `protected InternalAprInputBuffer` | `inputBuffer` Input.
    `protected InternalAprOutputBuffer` | `outputBuffer` Output.
    `protected AprEndpoint.SendfileData` | `sendfileData` Sendfile data.

    - ### Fields inherited from class org.apache.coyote.http11.AbstractHttp11Processor

      `comet, compressableMimeTypes, compressionLevel, compressionMinSize, connectionUploadTimeout, contentDelimitation, disableUploadTimeout, expectation, hostNameC, http09, http11, httpUpgradeHandler, keepAlive, keepAliveTimeout, keptAlive, localAddr, localName, localPort, maxKeepAliveRequests, maxSavePostSize, noCompressionUserAgents, openSocket, readComplete, remoteAddr, remoteHost, remotePort, restrictedUserAgents, sendfileInProgress, server, sm, socketBuffer, upgradeInbound`

    - ### Fields inherited from class org.apache.coyote.AbstractProcessor

      `adapter, asyncStateMachine, endpoint, request, response, socketWrapper`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Http11AprProcessor(int headerBufferSize, AprEndpoint endpoint, int maxTrailerSize, Set<String> allowedTrailerHeaders, int maxExtensionSize, int maxSwallowSize)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionInternal(ActionCode actionCode, Object param)` Send an action to the connector.
    `protected boolean` | `breakKeepAliveLoop(SocketWrapper<Long> socketWrapper)` Checks to see if the keep-alive loop should be broken, performing any processing (e.g. sendfile handling) that may have an impact on whether or not the keep-alive loop should be broken.
    `protected boolean` | `disableKeepAlive()` Processors (currently only HTTP BIO) may elect to disable HTTP keep-alive in some circumstances.
    `AbstractEndpoint.Handler.SocketState` | `event(SocketStatus status)` Process pipelined HTTP requests using the specified input and output streams.
    `String` | `getClientCertProvider()`
    `protected AbstractInputBuffer<Long>` | `getInputBuffer()` Exposes input buffer to super class to allow better code re-use.
    `protected Log` | `getLog()`
    `protected AbstractOutputBuffer<Long>` | `getOutputBuffer()` Exposes output buffer to super class to allow better code re-use.
    `protected boolean` | `handleIncompleteRequestLineRead()` Defines how a connector handles an incomplete request line read.
    `protected void` | `prepareRequestInternal()` Connector implementation specific request preparation.
    `protected boolean` | `prepareSendfile(OutputFilter[] outputFilters)`
    `void` | `recycleInternal()`
    `protected void` | `resetTimeouts()` Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.
    `void` | `setClientCertProvider(String s)`
    `protected void` | `setCometTimeouts(SocketWrapper<Long> socketWrapper)` Provides a mechanism for those connectors (currently only NIO) that need that need to set comet timeouts.
    `protected void` | `setRequestLineReadTimeout()` Configures the timeout to be used for reading the request line.
    `protected void` | `setSocketTimeout(int timeout)` Set the socket timeout.
    `void` | `setSslSupport(SSLSupport sslSupport)`

    - ### Methods inherited from class org.apache.coyote.http11.AbstractHttp11Processor

      `action, addCompressableMimeType, addCompressibleMimeType, asyncDispatch, endRequest, findBytes, getCompression, getConnectionUploadTimeout, getDisableUploadTimeout, getHttpUpgradeHandler, getKeepAliveTimeout, getMaxKeepAliveRequests, getMaxSavePostSize, getServer, getSocketBuffer, getUpgradeInbound, initializeFilters, isComet, isUpgrade, parseHost, prepareRequest, process, recycle, setCompressableMimeTypes, setCompressableMimeTypes, setCompressibleMimeTypes, setCompressibleMimeTypes, setCompression, setCompressionMinSize, setConnectionUploadTimeout, setDisableUploadTimeout, setKeepAliveTimeout, setMaxKeepAliveRequests, setMaxSavePostSize, setNoCompressionUserAgents, setRestrictedUserAgents, setServer, setSocketBuffer, statusDropsConnection, upgradeDispatch, upgradeDispatch`

    - ### Methods inherited from class org.apache.coyote.AbstractProcessor

      `asyncPostProcess, errorDispatch, getAdapter, getEndpoint, getErrorState, getExecutor, getMaxCookieCount, getRequest, getSocketWrapper, isAsync, resetErrorState, setAdapter, setErrorState, setMaxCookieCount, setSocketWrapper`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### inputBuffer

          protected InternalAprInputBuffer inputBuffer

      Input.

    - #### outputBuffer

          protected InternalAprOutputBuffer outputBuffer

      Output.

    - #### sendfileData

          protected AprEndpoint.SendfileData sendfileData

      Sendfile data.

    - #### clientCertProvider

          protected String clientCertProvider

      When client certificate information is presented in a form other than instances of `X509Certificate` it needs to be converted before it can be used and this property controls which JSSE provider is used to perform the conversion. For example it is used with the AJP connectors, the HTTP APR connector and with the `SSLValve`. If not specified, the default provider will be used.

  - ### Constructor Detail

    - #### Http11AprProcessor

          public Http11AprProcessor(int headerBufferSize,
                            AprEndpoint endpoint,
                            int maxTrailerSize,
                            Set<String> allowedTrailerHeaders,
                            int maxExtensionSize,
                            int maxSwallowSize)

  - ### Method Detail

    - #### getLog

          protected Log getLog()

      Specified by:
        `getLog` in class `AbstractProcessor<Long>`

    - #### getClientCertProvider

          public String getClientCertProvider()

    - #### setClientCertProvider

          public void setClientCertProvider(String s)

    - #### event

          public AbstractEndpoint.Handler.SocketState event(SocketStatus status)
                                                     throws IOException

      Process pipelined HTTP requests using the specified input and output streams.
      Specified by:
        `event` in interface `Processor<Long>`
      Specified by:
        `event` in class `AbstractProcessor<Long>`
      Throws:
        `IOException` - error during an I/O operation

    - #### disableKeepAlive

          protected boolean disableKeepAlive()

      Description copied from class: `AbstractHttp11Processor`
      Processors (currently only HTTP BIO) may elect to disable HTTP keep-alive in some circumstances. This method allows the processor implementation to determine if keep-alive should be disabled or not.
      Specified by:
        `disableKeepAlive` in class `AbstractHttp11Processor<Long>`

    - #### setRequestLineReadTimeout

          protected void setRequestLineReadTimeout()
                                            throws IOException

      Description copied from class: `AbstractHttp11Processor`
      Configures the timeout to be used for reading the request line.
      Specified by:
        `setRequestLineReadTimeout` in class `AbstractHttp11Processor<Long>`
      Throws:
        `IOException`

    - #### handleIncompleteRequestLineRead

          protected boolean handleIncompleteRequestLineRead()

      Description copied from class: `AbstractHttp11Processor`
      Defines how a connector handles an incomplete request line read.
      Specified by:
        `handleIncompleteRequestLineRead` in class `AbstractHttp11Processor<Long>`
      Returns:
        `true` if the processor should break out of the processing loop, otherwise `false`.

    - #### setSocketTimeout

          protected void setSocketTimeout(int timeout)

      Description copied from class: `AbstractHttp11Processor`
      Set the socket timeout.
      Specified by:
        `setSocketTimeout` in class `AbstractHttp11Processor<Long>`

    - #### setCometTimeouts

          protected void setCometTimeouts(SocketWrapper<Long> socketWrapper)

      Description copied from class: `AbstractHttp11Processor`
      Provides a mechanism for those connectors (currently only NIO) that need that need to set comet timeouts.
      Specified by:
        `setCometTimeouts` in class `AbstractHttp11Processor<Long>`

    - #### breakKeepAliveLoop

          protected boolean breakKeepAliveLoop(SocketWrapper<Long> socketWrapper)

      Description copied from class: `AbstractHttp11Processor`
      Checks to see if the keep-alive loop should be broken, performing any processing (e.g. sendfile handling) that may have an impact on whether or not the keep-alive loop should be broken.
      Specified by:
        `breakKeepAliveLoop` in class `AbstractHttp11Processor<Long>`
      Returns:
        true if the keep-alive loop should be broken

    - #### resetTimeouts

          protected void resetTimeouts()

      Description copied from class: `AbstractHttp11Processor`
      Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.
      Specified by:
        `resetTimeouts` in class `AbstractHttp11Processor<Long>`

    - #### recycleInternal

          public void recycleInternal()

      Specified by:
        `recycleInternal` in class `AbstractHttp11Processor<Long>`

    - #### setSslSupport

          public void setSslSupport(SSLSupport sslSupport)

    - #### actionInternal

          public void actionInternal(ActionCode actionCode,
                            Object param)

      Send an action to the connector.
      Specified by:
        `actionInternal` in class `AbstractHttp11Processor<Long>`
      Parameters:
        `actionCode` - Type of the action
        `param` - Action parameter

    - #### prepareRequestInternal

          protected void prepareRequestInternal()

      Description copied from class: `AbstractHttp11Processor`
      Connector implementation specific request preparation. Ideally, this will go away in the future.
      Specified by:
        `prepareRequestInternal` in class `AbstractHttp11Processor<Long>`

    - #### prepareSendfile

          protected boolean prepareSendfile(OutputFilter[] outputFilters)

      Specified by:
        `prepareSendfile` in class `AbstractHttp11Processor<Long>`

    - #### getInputBuffer

          protected AbstractInputBuffer<Long> getInputBuffer()

      Description copied from class: `AbstractHttp11Processor`
      Exposes input buffer to super class to allow better code re-use.
      Specified by:
        `getInputBuffer` in class `AbstractHttp11Processor<Long>`
      Returns:
        The input buffer used by the processor.

    - #### getOutputBuffer

          protected AbstractOutputBuffer<Long> getOutputBuffer()

      Description copied from class: `AbstractHttp11Processor`
      Exposes output buffer to super class to allow better code re-use.
      Specified by:
        `getOutputBuffer` in class `AbstractHttp11Processor<Long>`
      Returns:
        The output buffer used by the processor.

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.