io.undertow.protocols.alpn

## Interface ALPNProvider

All Known Implementing Classes:
  JDK8HackAlpnProvider, JDK9AlpnProvider, JettyAlpnProvider, OpenSSLAlpnProvider

    public interface ALPNProvider

Interface that allows for ALPN providers to be dynamically selected. THIS API IS TECH PREVIEW It will not be finalised until JDK9 has been released and the JDK9 ALPN API is 100% confirmed

Author:
  Stuart Douglas

### Method Summary

All Methods Instance Methods Abstract Methods
`int` `getPriority()`
`String` `getSelectedProtocol(SSLEngine engine)` Gets the selected ALPN protocol, of null if none was selected.
`boolean` `isEnabled(SSLEngine sslEngine)`
`SSLEngine` `setProtocols(SSLEngine engine, String[] protocols)` Sets the SSL protocols, and potentially wraps the SSLEngine

### Method Detail

#### isEnabled

    boolean isEnabled(SSLEngine sslEngine)

#### setProtocols

    SSLEngine setProtocols(SSLEngine engine,
                           String[] protocols)

Sets the SSL protocols, and potentially wraps the SSLEngine

Parameters:
  `engine` - The original engine
  `protocols` - The protocols
Returns:
  The new SSLEngine

#### getSelectedProtocol

    String getSelectedProtocol(SSLEngine engine)

Gets the selected ALPN protocol, of null if none was selected.

Parameters:
  `engine` - The SSL Engine
Returns:
  The selected protocol

#### getPriority

    int getPriority()

Returns:
  The priority of this provider, higher priority providers will be tried first