// Path: src/main/java/info/jdavid/ok/server/Logger.java
// static final org.slf4j.Logger logger = LoggerFactory.getLogger(HttpServer.class);


import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocket;
import static info.jdavid.ok.server.Logger.logger;
    }
    catch (final IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }

  private static void setHttp2Protocol(final SSLSocket socket, final Method method) {
    final SSLParameters parameters = socket.getSSLParameters();
    try {
      method.invoke(parameters, new Object[] { protocols });
      socket.setSSLParameters(parameters);
    }
    catch (final IllegalAccessException e1) {
      throw new RuntimeException(e1);
    }
    catch (final InvocationTargetException e2) {
      throw new RuntimeException(e2);
    }
  }

  static class Jdk9Platform extends Platform {

    static Platform buildIfSupported() {
      return Float.parseFloat(JAVA_SPEC_VERSION) >= 9 ? new Jdk9Platform() : null;
    }

    private final Method applicationProtocols;

    private Jdk9Platform() {
      super();
// Path: src/main/java/info/jdavid/ok/server/Logger.java
// static final org.slf4j.Logger logger = LoggerFactory.getLogger(HttpServer.class);


// Path: src/main/java/info/jdavid/ok/server/Platform.java
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocket;
import static info.jdavid.ok.server.Logger.logger;

    }
    catch (final IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }

  private static void setHttp2Protocol(final SSLSocket socket, final Method method) {
    final SSLParameters parameters = socket.getSSLParameters();
    try {
      method.invoke(parameters, new Object[] { protocols });
      socket.setSSLParameters(parameters);
    }
    catch (final IllegalAccessException e1) {
      throw new RuntimeException(e1);
    }
    catch (final InvocationTargetException e2) {
      throw new RuntimeException(e2);
    }
  }

  static class Jdk9Platform extends Platform {

    static Platform buildIfSupported() {
      return Float.parseFloat(JAVA_SPEC_VERSION) >= 9 ? new Jdk9Platform() : null;
    }

    private final Method applicationProtocols;

    private Jdk9Platform() {
      super();
      logger.info("JDK9 Platform");