Home / Class/ JdkSslEngineTest Class — netty Architecture

JdkSslEngineTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  30adda7f_4d88_ce9b_59a8_bf86122e30b1["JdkSslEngineTest"]
  e624c181_478b_3b9a_d700_a3ea418318cb["JdkSslEngineTest.java"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|defined in| e624c181_478b_3b9a_d700_a3ea418318cb
  1e6f0628_6c75_d0d5_0efe_d63ce909eb7e["JdkSslEngineTest()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 1e6f0628_6c75_d0d5_0efe_d63ce909eb7e
  92bf6e23_ba24_8593_05d0_a8ad27bea3ba["newJdkParams()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 92bf6e23_ba24_8593_05d0_a8ad27bea3ba
  53efb741_5846_f89e_2045_c0f39bbe3252["testTlsExtension()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 53efb741_5846_f89e_2045_c0f39bbe3252
  a44ad743_f758_f3bc_6345_3c2e62b59be3["testTlsExtensionNoCompatibleProtocolsNoHandshakeFailure()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| a44ad743_f758_f3bc_6345_3c2e62b59be3
  c55723e6_5df7_a049_e74b_079461ee59be["testTlsExtensionNoCompatibleProtocolsClientHandshakeFailure()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| c55723e6_5df7_a049_e74b_079461ee59be
  fee76d1f_9aaa_023f_04c0_15fab60f2426["testTlsExtensionNoCompatibleProtocolsServerHandshakeFailure()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| fee76d1f_9aaa_023f_04c0_15fab60f2426
  fe41ba34_429d_b660_5140_73631e6770a4["testAlpnCompatibleProtocolsDifferentClientOrder()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| fe41ba34_429d_b660_5140_73631e6770a4
  058ae6bf_5c1d_c4b1_9229_a1cfdd50362a["testEnablingAnAlreadyDisabledSslProtocol()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 058ae6bf_5c1d_c4b1_9229_a1cfdd50362a
  92a272ec_bf1c_d558_9570_b3bde9d3a5a5["testMutualAuthValidClientCertChainTooLongFailOptionalClientAuth()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 92a272ec_bf1c_d558_9570_b3bde9d3a5a5
  51a36e24_7f93_b98a_3dd7_a7d4f1ee17f4["testMutualAuthValidClientCertChainTooLongFailRequireClientAuth()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 51a36e24_7f93_b98a_3dd7_a7d4f1ee17f4
  d7523ba7_93b4_2406_54de_9d81b41a0d1a["mySetupMutualAuthServerIsValidException()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| d7523ba7_93b4_2406_54de_9d81b41a0d1a
  26c9d431_d7e9_3f0f_c077_a396cd607cb3["runTest()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| 26c9d431_d7e9_3f0f_c077_a396cd607cb3
  bb2f484e_02bb_b3cc_eac8_fd9f4346232a["SslProvider()"]
  30adda7f_4d88_ce9b_59a8_bf86122e30b1 -->|method| bb2f484e_02bb_b3cc_eac8_fd9f4346232a

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/JdkSslEngineTest.java lines 44–361

public class JdkSslEngineTest extends SSLEngineTest {
    public enum ProviderType {
        ALPN_JAVA {
            @Override
            boolean isAvailable() {
                return JdkAlpnSslUtils.supportsAlpn();
            }

            @Override
            Protocol protocol() {
                return Protocol.ALPN;
            }

            @Override
            Provider provider() {
                // Use the default provider.
                return null;
            }
        },
        ALPN_CONSCRYPT {
            private Provider provider;

            @Override
            boolean isAvailable() {
                return Conscrypt.isAvailable();
            }

            @Override
            Protocol protocol() {
                return Protocol.ALPN;
            }

            @Override
            Provider provider() {
                try {
                    if (provider == null) {
                        provider = (Provider) Class.forName("org.conscrypt.OpenSSLProvider")
                            .getConstructor().newInstance();
                    }
                    return provider;
                } catch (Exception e) {
                    throw new IllegalStateException(e);
                }
            }
        };

        abstract boolean isAvailable();
        abstract Protocol protocol();
        abstract Provider provider();

        final void activate(JdkSslEngineTest instance) {
            // Typical code will not have to check this, but will get a initialization error on class load.
            // Check in this test just in case we have multiple tests that just the class and we already ignored the
            // initialization error.
            if (!isAvailable()) {
                throw tlsExtensionNotFound(protocol());
            }
            instance.provider = provider();
        }
    }

    private static final String PREFERRED_APPLICATION_LEVEL_PROTOCOL = "my-protocol-http2";
    private static final String FALLBACK_APPLICATION_LEVEL_PROTOCOL = "my-protocol-http1_1";
    private static final String APPLICATION_LEVEL_PROTOCOL_NOT_COMPATIBLE = "my-protocol-FOO";

    private Provider provider;

    public JdkSslEngineTest() {
        super(SslProvider.isTlsv13Supported(SslProvider.JDK));
    }

    List<JdkSSLEngineTestParam> newJdkParams() {
        List<SSLEngineTestParam> params = newTestParams();

        List<JdkSSLEngineTestParam> jdkParams = new ArrayList<JdkSSLEngineTestParam>();
        for (ProviderType providerType: ProviderType.values()) {
            for (SSLEngineTestParam param: params) {
                jdkParams.add(new JdkSSLEngineTestParam(providerType, param));
            }
        }
        return jdkParams;

Frequently Asked Questions

What is the JdkSslEngineTest class?
JdkSslEngineTest is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/JdkSslEngineTest.java.
Where is JdkSslEngineTest defined?
JdkSslEngineTest is defined in handler/src/test/java/io/netty/handler/ssl/JdkSslEngineTest.java at line 44.

Analyze Your Own Codebase

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

Try Supermodel Free