SocketSslGreetingTest Class — netty Architecture
Architecture documentation for the SocketSslGreetingTest class in SocketSslGreetingTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 0d8d21bd_73fc_7280_239e_74797713c184["SocketSslGreetingTest"] 4fe0c873_7a28_068c_869b_b9cc2be31bae["SocketSslGreetingTest.java"] 0d8d21bd_73fc_7280_239e_74797713c184 -->|defined in| 4fe0c873_7a28_068c_869b_b9cc2be31bae 3e3065e0_f447_7086_5d10_a7d45e42236d["data()"] 0d8d21bd_73fc_7280_239e_74797713c184 -->|method| 3e3065e0_f447_7086_5d10_a7d45e42236d 24481ba5_daec_477c_4df1_62b898ae6dae["SslHandler()"] 0d8d21bd_73fc_7280_239e_74797713c184 -->|method| 24481ba5_daec_477c_4df1_62b898ae6dae e5d1f7d6_7e4a_fa20_4d73_2f109d65fc7b["testSslGreeting()"] 0d8d21bd_73fc_7280_239e_74797713c184 -->|method| e5d1f7d6_7e4a_fa20_4d73_2f109d65fc7b
Relationship Graph
Source Code
testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslGreetingTest.java lines 64–279
public class SocketSslGreetingTest extends AbstractSocketTest {
private static final InternalLogger logger = InternalLoggerFactory.getInstance(SocketSslGreetingTest.class);
private static final LogLevel LOG_LEVEL = LogLevel.TRACE;
private static final File CERT_FILE;
private static final File KEY_FILE;
static {
try {
X509Bundle cert = new CertificateBuilder()
.subject("cn=localhost")
.setIsCertificateAuthority(true)
.buildSelfSigned();
CERT_FILE = cert.toTempCertChainPem();
KEY_FILE = cert.toTempPrivateKeyPem();
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static Collection<Object[]> data() throws Exception {
List<SslContext> serverContexts = new ArrayList<SslContext>();
serverContexts.add(SslContextBuilder.forServer(CERT_FILE, KEY_FILE).sslProvider(SslProvider.JDK).build());
List<SslContext> clientContexts = new ArrayList<SslContext>();
clientContexts.add(SslContextBuilder.forClient().sslProvider(SslProvider.JDK)
.endpointIdentificationAlgorithm(null).trustManager(CERT_FILE).build());
boolean hasOpenSsl = OpenSsl.isAvailable();
if (hasOpenSsl) {
serverContexts.add(SslContextBuilder.forServer(CERT_FILE, KEY_FILE)
.sslProvider(SslProvider.OPENSSL).build());
clientContexts.add(SslContextBuilder.forClient().sslProvider(SslProvider.OPENSSL)
.endpointIdentificationAlgorithm(null)
.trustManager(CERT_FILE).build());
} else {
logger.warn("OpenSSL is unavailable and thus will not be tested.", OpenSsl.unavailabilityCause());
}
List<Object[]> params = new ArrayList<Object[]>();
for (SslContext sc: serverContexts) {
for (SslContext cc: clientContexts) {
params.add(new Object[] { sc, cc, true });
params.add(new Object[] { sc, cc, false });
}
}
return params;
}
private static SslHandler newSslHandler(SslContext sslCtx, ByteBufAllocator allocator, Executor executor) {
if (executor == null) {
return sslCtx.newHandler(allocator);
} else {
return sslCtx.newHandler(allocator, executor);
}
}
// Test for https://github.com/netty/netty/pull/2437
@ParameterizedTest(name = "{index}: serverEngine = {0}, clientEngine = {1}, delegate = {2}")
@MethodSource("data")
@Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
public void testSslGreeting(final SslContext serverCtx, final SslContext clientCtx, final boolean delegate,
TestInfo testInfo) throws Throwable {
run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
@Override
public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
testSslGreeting(sb, cb, serverCtx, clientCtx, delegate);
}
});
}
public void testSslGreeting(ServerBootstrap sb, Bootstrap cb, final SslContext serverCtx,
final SslContext clientCtx, boolean delegate) throws Throwable {
final ServerHandler sh = new ServerHandler();
final ClientHandler ch = new ClientHandler();
final ExecutorService executorService = delegate ? Executors.newCachedThreadPool() : null;
try {
sb.childHandler(new ChannelInitializer<Channel>() {
@Override
Source
Frequently Asked Questions
What is the SocketSslGreetingTest class?
SocketSslGreetingTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslGreetingTest.java.
Where is SocketSslGreetingTest defined?
SocketSslGreetingTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslGreetingTest.java at line 64.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free