public AbstractRequestContextBuilder sslSession(SSLSession sslSession) {
        this.sslSession = requireNonNull(sslSession, "sslSession");
        switch (sessionProtocol) {
            case HTTP:
                sessionProtocol(SessionProtocol.HTTPS);
                break;
            case H1C:
                sessionProtocol(SessionProtocol.H1);
                break;
            case H2C:
                sessionProtocol(SessionProtocol.H2);
                break;
        }
        return this;
    }
Sets the {@link SSLSession} of the connection. If the current {@link SessionProtocol} is not TLS,
the TLS version of the current {@link SessionProtocol} will be set automatically. For example,
{@link SessionProtocol#H2C} will be automatically upgraded to {@link SessionProtocol#H2}.
Note that upgrading the current {@link SessionProtocol} may trigger an {@link IllegalArgumentException},
as described in {@link #sessionProtocol(SessionProtocol)}.
core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java