Package org.apache.coyote

## Interface UpgradeProtocol

All Known Implementing Classes:
  `Http2Protocol`

    public interface UpgradeProtocol

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `accept​(Request request)` Allows the implementation to examine the request and accept or reject it based on what it finds.
`byte[]` `getAlpnIdentifier()`
`java.lang.String` `getAlpnName()`
`java.lang.String` `getHttpUpgradeName​(boolean isSSLEnabled)`
`InternalHttpUpgradeHandler` `getInternalUpgradeHandler​(Adapter adapter, Request request)`
`Processor` `getProcessor​(SocketWrapperBase<?> socketWrapper, Adapter adapter)`

### Method Detail

#### getHttpUpgradeName

    java.lang.String getHttpUpgradeName​(boolean isSSLEnabled)

Parameters:
  `isSSLEnabled` - Is this for a connector that is configured to support TLS. Some protocols (e.g. HTTP/2) only support HTTP upgrade over non-secure connections.
Returns:
  The name that clients will use to request an upgrade to this protocol via an HTTP/1.1 upgrade request or `null` if upgrade via an HTTP/1.1 upgrade request is not supported.

#### getAlpnIdentifier

    byte[] getAlpnIdentifier()

Returns:
  The byte sequence as listed in the IANA registry for this protocol or `null` if upgrade via ALPN is not supported.

#### getAlpnName

    java.lang.String getAlpnName()

Returns:
  The name of the protocol as listed in the IANA registry if and only if `getAlpnIdentifier()` returns the UTF-8 encoding of this name. If `getAlpnIdentifier()` returns some other byte sequence, then this method returns the empty string. If upgrade via ALPN is not supported then `null` is returned.

#### getProcessor

    Processor getProcessor​(SocketWrapperBase<?> socketWrapper,
                           Adapter adapter)

Parameters:
  `socketWrapper` - The socketWrapper for the connection that requires a processor
  `adapter` - The Adapter instance that provides access to the standard Engine/Host/Context/Wrapper processing chain
Returns:
  A processor instance for processing a connection using this protocol.

#### getInternalUpgradeHandler

    InternalHttpUpgradeHandler getInternalUpgradeHandler​(Adapter adapter,
                                                         Request request)

Parameters:
  `adapter` - The Adapter to use to configure the new upgrade handler
  `request` - A copy (may be incomplete) of the request that triggered the upgrade
Returns:
  An instance of the HTTP upgrade handler for this protocol

#### accept

    boolean accept​(Request request)

Allows the implementation to examine the request and accept or reject it based on what it finds.

Parameters:
  `request` - The request that included an upgrade header for this protocol
Returns:
  `true` if the request is accepted, otherwise `false`