AbstractSslEngineBenchmark Class — netty Architecture
Architecture documentation for the AbstractSslEngineBenchmark class in AbstractSslEngineBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 2049e1f3_c0b4_240c_1d58_95f03c8142de["AbstractSslEngineBenchmark"] 6665b9e5_1220_a33a_5278_90a78eece30a["AbstractSslEngineBenchmark.java"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|defined in| 6665b9e5_1220_a33a_5278_90a78eece30a 396fa817_5309_c420_5ce3_1a1c170811dd["initEngines()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 396fa817_5309_c420_5ce3_1a1c170811dd 0bad146a_c211_91b7_2738_3730bb85d5e2["destroyEngines()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 0bad146a_c211_91b7_2738_3730bb85d5e2 b9691586_f3d8_069a_eab1_d0da5c42c6d9["initHandshakeBuffers()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| b9691586_f3d8_069a_eab1_d0da5c42c6d9 eecbc4da_66d8_7fd8_c3be_8491d0ee0671["destroyHandshakeBuffers()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| eecbc4da_66d8_7fd8_c3be_8491d0ee0671 1ca4381f_12c1_e8ea_cbe9_ec019815c591["doHandshake()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 1ca4381f_12c1_e8ea_cbe9_ec019815c591 e5406640_7d5f_b8f3_7d5a_226b2dc64861["SSLEngine()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| e5406640_7d5f_b8f3_7d5a_226b2dc64861 086027d6_45fd_2ab3_ea3c_284708eba508["checkSslEngineResult()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 086027d6_45fd_2ab3_ea3c_284708eba508 606788b4_80bf_6ed6_ff3d_5bc94f89b73e["CleanableDirectBuffer()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 606788b4_80bf_6ed6_ff3d_5bc94f89b73e 7ac355cb_b1e1_a0f3_b399_b00d8cfe99a2["isHandshakeFinished()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 7ac355cb_b1e1_a0f3_b399_b00d8cfe99a2 0d7f838d_cbb0_efbc_27ab_309b508e23f1["runDelegatedTasks()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de -->|method| 0d7f838d_cbb0_efbc_27ab_309b508e23f1
Relationship Graph
Source Code
microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java lines 36–291
public class AbstractSslEngineBenchmark 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);
}
}
SSLEngine newClientEngine(ByteBufAllocator allocator, String cipher) {
return configureEngine(clientContext.newHandler(allocator).engine(), cipher);
}
SSLEngine newServerEngine(ByteBufAllocator allocator, String cipher) {
return configureEngine(serverContext.newHandler(allocator).engine(), cipher);
}
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;
}
}
public enum BufferType {
HEAP {
@Override
CleanableDirectBuffer newBuffer(int size) {
ByteBuffer byteBuffer = ByteBuffer.allocate(size);
return new CleanableDirectBuffer() {
@Override
public ByteBuffer buffer() {
return byteBuffer;
}
@Override
public void clean() {
// NOOP
Source
Frequently Asked Questions
What is the AbstractSslEngineBenchmark class?
AbstractSslEngineBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java.
Where is AbstractSslEngineBenchmark defined?
AbstractSslEngineBenchmark is defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java at line 36.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free