NettyServer(NettyServerBuilder nettyServerBuilder) { this.host = nettyServerBuilder.host(); this.channelGroup = requireNonNull(nettyServerBuilder.channelGroup()); this.serverEventLoopFactory = requireNonNull(nettyServerBuilder.serverEventLoopFactory(), "serverEventLoopFactory cannot be null"); this.httpHandler = requireNonNull(nettyServerBuilder.httpHandler()); this.httpConnector = nettyServerBuilder.httpConnector(); this.httpsConnector = nettyServerBuilder.httpsConnector(); this.httpServerSocketBinder = httpConnector.map(ServerSocketBinder::new).orElse(null); this.httpsServerSocketBinder = httpsConnector.map(ServerSocketBinder::new).orElse(null); this.startupActions = nettyServerBuilder.startupActions(); }
/** * Returns a new {@link com.hotels.styx.server.HttpServer} object, which runs on the provided port. * * @param name - Name of the server and associated IO thread. * @param httpConnectorConfig - HTTP connector configuration. * @param handler - Request handler. * * @return {@link com.hotels.styx.server.HttpServer} object * @see com.hotels.styx.server.netty.NettyServer */ public static HttpServer createHttpServer(String name, HttpConnectorConfig httpConnectorConfig, HttpHandler handler) { return NettyServerBuilder.newBuilder() .name(name) .setHttpConnector(new WebServerConnectorFactory().create(httpConnectorConfig)) .httpHandler(handler) .build(); }
/** * Returns a new {@link com.hotels.styx.server.HttpServer} object, using secure HTTPS protocol. * * @param name - Name of the server and associated IO thread. * @param httpsConnectorConfig - HTTPS endpoint configuration. * @param handler - Request handler. * * @return {@link com.hotels.styx.server.HttpServer} object * @see com.hotels.styx.server.netty.NettyServer */ public static HttpServer createHttpsServer(String name, HttpsConnectorConfig httpsConnectorConfig, HttpHandler handler) { return NettyServerBuilder.newBuilder() .name(name) .setHttpsConnector(new WebServerConnectorFactory().create(httpsConnectorConfig)) .httpHandler(handler) .build(); }
public HttpServer build() { ProxyServerConfig proxyConfig = environment.styxConfig().proxyServerConfig(); String unwiseCharacters = environment.styxConfig().get(ENCODE_UNWISECHARS).orElse(""); boolean requestTracking = environment.configuration().get("requestTracking", Boolean.class).orElse(false); return new NettyServerBuilderSpec("Proxy", environment.serverEnvironment(), new ProxyConnectorFactory(proxyConfig, environment.metricRegistry(), environment.errorListener(), unwiseCharacters, this::addInfoHeader, requestTracking)) .toNettyServerBuilder(proxyConfig) .httpHandler(httpHandler) // register health check .doOnStartUp(onStartupAction) .build(); }
private static HttpServer createHttpServer(Origin origin) { LOG.info("creating server for {}", origin.hostAndPortString()); return new NettyServerBuilder() .name(origin.hostAndPortString()) .setServerEventLoopFactory(serverEventLoopFactory) .setHttpConnector(new WebServerConnectorFactory().create(new HttpConnectorConfig(origin.port()))) .httpHandler(new StandardHttpRouter().add("/*", new AppHandler(origin))) .build(); }
/** * Returns a new {@link com.hotels.styx.server.HttpServer} object, which runs on the provided port. * * @param port * @return {@link com.hotels.styx.server.HttpServer} object * @see com.hotels.styx.server.netty.NettyServer */ public static HttpServer createHttpServer(int port, HttpHandler handler) { return NettyServerBuilder.newBuilder() .name("NettyServer") .setHttpConnector(new WebServerConnectorFactory().create(new HttpConnectorConfig(port))) .httpHandler(new StandardHttpRouter().add("/", handler)) .build(); }
.httpHandler(httpRouter) .build();