AbstractSslHandlerBenchmark Class — netty Architecture
Architecture documentation for the AbstractSslHandlerBenchmark class in AbstractSslHandlerBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD af13e1ad_19d3_6266_db4e_36c57d148c92["AbstractSslHandlerBenchmark"] 0229f7eb_0c18_7fcb_97be_20e80f2f8b36["AbstractSslHandlerBenchmark.java"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|defined in| 0229f7eb_0c18_7fcb_97be_20e80f2f8b36 eddbd48e_c8ed_2c59_2998_f474ee644cb3["initSslHandlers()"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|method| eddbd48e_c8ed_2c59_2998_f474ee644cb3 1cf86807_f056_4c9e_1d1a_fdbf7e1e52df["destroySslHandlers()"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|method| 1cf86807_f056_4c9e_1d1a_fdbf7e1e52df 4894c167_1d6b_0d7e_6d00_9efcfe204744["doHandshake()"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|method| 4894c167_1d6b_0d7e_6d00_9efcfe204744 f15cede9_8c01_b953_0768_b354de672ac5["SslHandler()"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|method| f15cede9_8c01_b953_0768_b354de672ac5 7a8c4aaa_959a_592d_813a_d7e00b557b6b["handleUnexpectedException()"] af13e1ad_19d3_6266_db4e_36c57d148c92 -->|method| 7a8c4aaa_959a_592d_813a_d7e00b557b6b
Relationship Graph
Source Code
microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslHandlerBenchmark.java lines 38–182
public class AbstractSslHandlerBenchmark extends AbstractMicrobenchmark {
private static final String PROTOCOL_TLS_V1_2 = "TLSv1.2";
public enum SslEngineProvider {
JDK {
@Override
SslProvider sslProvider() {
return SslProvider.JDK;
}
},
OPENSSL {
@Override
SslProvider sslProvider() {
return SslProvider.OPENSSL;
}
},
OPENSSL_REFCNT {
@Override
SslProvider sslProvider() {
return SslProvider.OPENSSL_REFCNT;
}
};
private final SslContext clientContext = newClientContext();
private final SslContext serverContext = newServerContext();
private SslContext newClientContext() {
try {
return SslContextBuilder.forClient()
.sslProvider(sslProvider())
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
} catch (SSLException e) {
throw new IllegalStateException(e);
}
}
private SslContext newServerContext() {
try {
File keyFile = new File(getClass().getResource("test_unencrypted.pem").getFile());
File crtFile = new File(getClass().getResource("test.crt").getFile());
return SslContextBuilder.forServer(crtFile, keyFile)
.sslProvider(sslProvider())
.build();
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
SslHandler newClientHandler(ByteBufAllocator allocator, String cipher) {
SslHandler handler = clientContext.newHandler(allocator);
configureEngine(handler.engine(), cipher);
return handler;
}
SslHandler newServerHandler(ByteBufAllocator allocator, String cipher) {
SslHandler handler = serverContext.newHandler(allocator);
configureEngine(handler.engine(), cipher);
return handler;
}
abstract SslProvider sslProvider();
static SSLEngine configureEngine(SSLEngine engine, String cipher) {
engine.setEnabledProtocols(new String[]{ PROTOCOL_TLS_V1_2 });
engine.setEnabledCipherSuites(new String[]{ cipher });
return engine;
}
}
@Param
public SslEngineProvider sslProvider;
// Includes cipher required by HTTP/2
@Param({ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" })
public String cipher;
protected SslHandler clientSslHandler;
protected SslHandler serverSslHandler;
protected EmbeddedChannelWriteAccumulatingHandlerContext clientCtx;
protected EmbeddedChannelWriteAccumulatingHandlerContext serverCtx;
Defined In
Source
Frequently Asked Questions
What is the AbstractSslHandlerBenchmark class?
AbstractSslHandlerBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslHandlerBenchmark.java.
Where is AbstractSslHandlerBenchmark defined?
AbstractSslHandlerBenchmark is defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslHandlerBenchmark.java at line 38.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free