public static DefaultServerFactory createServerFactory(final InetSocketAddress httpEndpoint, final InetSocketAddress adminEndpoint, final boolean noHttp) { final DefaultServerFactory serverFactory = new DefaultServerFactory(); if (noHttp) { serverFactory.setApplicationConnectors(Collections.<ConnectorFactory>emptyList()); serverFactory.setAdminConnectors(Collections.<ConnectorFactory>emptyList()); } else { final HttpConnectorFactory serviceConnector = new HttpConnectorFactory(); serviceConnector.setPort(httpEndpoint.getPort()); serviceConnector.setBindHost(httpEndpoint.getHostString()); serverFactory.setApplicationConnectors(ImmutableList.<ConnectorFactory>of(serviceConnector)); final HttpConnectorFactory adminConnector = new HttpConnectorFactory(); adminConnector.setPort(adminEndpoint.getPort()); adminConnector.setBindHost(adminEndpoint.getHostString()); serverFactory.setAdminConnectors(ImmutableList.<ConnectorFactory>of(adminConnector)); } return serverFactory; } }
public static DefaultServerFactory createServerFactory(final InetSocketAddress httpEndpoint, final int adminPort, final boolean noHttp) { // TODO(drewc) be more flexible on the httpEndpoint -- make it a URI -- so if/when we support // SSL, it'll *just work* final DefaultServerFactory serverFactory = new DefaultServerFactory(); if (noHttp) { serverFactory.setApplicationConnectors(Collections.<ConnectorFactory>emptyList()); serverFactory.setAdminConnectors(Collections.<ConnectorFactory>emptyList()); } else { final HttpConnectorFactory serviceConnector = new HttpConnectorFactory(); serviceConnector.setPort(httpEndpoint.getPort()); serviceConnector.setBindHost(httpEndpoint.getHostString()); serverFactory.setApplicationConnectors(ImmutableList.<ConnectorFactory>of(serviceConnector)); final HttpConnectorFactory adminConnector = new HttpConnectorFactory(); adminConnector.setPort(adminPort); serverFactory.setAdminConnectors(ImmutableList.<ConnectorFactory>of(adminConnector)); } return serverFactory; } }
private void configureServerRuntime(DoctorKafkaAppConfig configuration, DoctorKafkaConfig config) { DefaultServerFactory defaultServerFactory = (DefaultServerFactory) configuration.getServerFactory(); // Disable gzip compression for HTTP, this is required in-order to make // Server-Sent-Events work, else due to GZIP the browser waits for entire chunks // to arrive thereby the UI receiving no events // We are programmatically disabling it here so it makes it easy to launch // Firefly GzipHandlerFactory gzipHandlerFactory = new GzipHandlerFactory(); gzipHandlerFactory.setEnabled(false); defaultServerFactory.setGzipFilterFactory(gzipHandlerFactory); // Note that if someone explicitly enables gzip in the Dropwizard config YAML // then // this setting will be over-ruled causing the UI to stop working // Disable HTTP request logging LogbackAccessRequestLogFactory accessRequestLogFactory = new LogbackAccessRequestLogFactory(); accessRequestLogFactory.setAppenders(ImmutableList.of()); defaultServerFactory.setRequestLogFactory(accessRequestLogFactory); // Disable admin connector defaultServerFactory.setAdminConnectors(ImmutableList.of()); // Configure bind host and port number HttpConnectorFactory application = (HttpConnectorFactory) HttpConnectorFactory.application(); application.setPort(config.getWebserverPort()); defaultServerFactory.setApplicationConnectors(Collections.singletonList(application)); }