Home / Class/ JdkAlpnApplicationProtocolNegotiator Class — netty Architecture

JdkAlpnApplicationProtocolNegotiator Class — netty Architecture

Architecture documentation for the JdkAlpnApplicationProtocolNegotiator class in JdkAlpnApplicationProtocolNegotiator.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  2a659e94_0b45_8bf6_2231_612993411e6c["JdkAlpnApplicationProtocolNegotiator"]
  3ca15c7f_1a43_6ede_7980_b5d11c6a55d1["JdkAlpnApplicationProtocolNegotiator.java"]
  2a659e94_0b45_8bf6_2231_612993411e6c -->|defined in| 3ca15c7f_1a43_6ede_7980_b5d11c6a55d1
  be8beba0_7967_532b_1c23_998b694fc556["JdkAlpnApplicationProtocolNegotiator()"]
  2a659e94_0b45_8bf6_2231_612993411e6c -->|method| be8beba0_7967_532b_1c23_998b694fc556
  ec9f07fb_1969_c9b7_cfbf_ba5af96abe8e["isAlpnSupported()"]
  2a659e94_0b45_8bf6_2231_612993411e6c -->|method| ec9f07fb_1969_c9b7_cfbf_ba5af96abe8e

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/JdkAlpnApplicationProtocolNegotiator.java lines 28–153

@Deprecated
public final class JdkAlpnApplicationProtocolNegotiator extends JdkBaseApplicationProtocolNegotiator {
    private static final boolean AVAILABLE = Conscrypt.isAvailable() ||
                                             JdkAlpnSslUtils.supportsAlpn() ||
            (BouncyCastleUtil.isBcTlsAvailable() && BouncyCastleAlpnSslUtils.isAlpnSupported());

    private static final SslEngineWrapperFactory ALPN_WRAPPER = AVAILABLE ? new AlpnWrapper() : new FailureWrapper();

    /**
     * Create a new instance.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(Iterable<String> protocols) {
        this(false, protocols);
    }

    /**
     * Create a new instance.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(String... protocols) {
        this(false, protocols);
    }

    /**
     * Create a new instance.
     * @param failIfNoCommonProtocols Fail with a fatal alert if not common protocols are detected.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(boolean failIfNoCommonProtocols, Iterable<String> protocols) {
        this(failIfNoCommonProtocols, failIfNoCommonProtocols, protocols);
    }

    /**
     * Create a new instance.
     * @param failIfNoCommonProtocols Fail with a fatal alert if not common protocols are detected.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(boolean failIfNoCommonProtocols, String... protocols) {
        this(failIfNoCommonProtocols, failIfNoCommonProtocols, protocols);
    }

    /**
     * Create a new instance.
     * @param clientFailIfNoCommonProtocols Client side fail with a fatal alert if not common protocols are detected.
     * @param serverFailIfNoCommonProtocols Server side fail with a fatal alert if not common protocols are detected.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(boolean clientFailIfNoCommonProtocols,
            boolean serverFailIfNoCommonProtocols, Iterable<String> protocols) {
        this(serverFailIfNoCommonProtocols ? FAIL_SELECTOR_FACTORY : NO_FAIL_SELECTOR_FACTORY,
                clientFailIfNoCommonProtocols ? FAIL_SELECTION_LISTENER_FACTORY : NO_FAIL_SELECTION_LISTENER_FACTORY,
                protocols);
    }

    /**
     * Create a new instance.
     * @param clientFailIfNoCommonProtocols Client side fail with a fatal alert if not common protocols are detected.
     * @param serverFailIfNoCommonProtocols Server side fail with a fatal alert if not common protocols are detected.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(boolean clientFailIfNoCommonProtocols,
            boolean serverFailIfNoCommonProtocols, String... protocols) {
        this(serverFailIfNoCommonProtocols ? FAIL_SELECTOR_FACTORY : NO_FAIL_SELECTOR_FACTORY,
                clientFailIfNoCommonProtocols ? FAIL_SELECTION_LISTENER_FACTORY : NO_FAIL_SELECTION_LISTENER_FACTORY,
                protocols);
    }

    /**
     * Create a new instance.
     * @param selectorFactory The factory which provides classes responsible for selecting the protocol.
     * @param listenerFactory The factory which provides to be notified of which protocol was selected.
     * @param protocols The order of iteration determines the preference of support for protocols.
     */
    public JdkAlpnApplicationProtocolNegotiator(ProtocolSelectorFactory selectorFactory,
            ProtocolSelectionListenerFactory listenerFactory, Iterable<String> protocols) {
        super(ALPN_WRAPPER, selectorFactory, listenerFactory, protocols);
    }

    /**
     * Create a new instance.

Frequently Asked Questions

What is the JdkAlpnApplicationProtocolNegotiator class?
JdkAlpnApplicationProtocolNegotiator is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/JdkAlpnApplicationProtocolNegotiator.java.
Where is JdkAlpnApplicationProtocolNegotiator defined?
JdkAlpnApplicationProtocolNegotiator is defined in handler/src/main/java/io/netty/handler/ssl/JdkAlpnApplicationProtocolNegotiator.java at line 28.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free