private int computeNumberOfAvailableThreads() { Preconditions.checkState(getServerFactory() instanceof DefaultServerFactory, "Unexpected serverFactory instance on TimeLockServerConfiguration."); DefaultServerFactory serverFactory = (DefaultServerFactory) getServerFactory(); int maxServerThreads = serverFactory.getMaxThreads(); Preconditions.checkNotNull(serverFactory.getApplicationConnectors(), "applicationConnectors of TimeLockServerConfiguration must not be null."); Preconditions.checkState(serverFactory.getApplicationConnectors().get(0) instanceof HttpConnectorFactory, "applicationConnectors of TimeLockServerConfiguration must have a HttpConnectorFactory instance."); HttpConnectorFactory connectorFactory = (HttpConnectorFactory) serverFactory.getApplicationConnectors().get(0); int selectorThreads = connectorFactory.getSelectorThreads(); int acceptorThreads = connectorFactory.getAcceptorThreads(); // TODO(gmaretic): consider reserving numClients more threads or something similar for unlocks return maxServerThreads - selectorThreads - acceptorThreads - 1; } }
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; } }
serverFactory.setRequestLogFactory(requestLog); serverFactory.setGzipFilterFactory(gzip); this.server = serverFactory.build(environment);
@Inject SingularityHostAndPortProvider(final SingularityConfiguration configuration, @Named(HOST_NAME_PROPERTY) String hostname) { checkNotNull(configuration, "configuration is null"); this.hostname = configuration.getHostname().or(hostname); Integer port = null; if (configuration.getServerFactory() instanceof SimpleServerFactory) { SimpleServerFactory simpleServerFactory = (SimpleServerFactory) configuration.getServerFactory(); HttpConnectorFactory httpFactory = (HttpConnectorFactory) simpleServerFactory.getConnector(); port = httpFactory.getPort(); } else { DefaultServerFactory defaultServerFactory = (DefaultServerFactory) configuration.getServerFactory(); for (ConnectorFactory connectorFactory : defaultServerFactory.getApplicationConnectors()) { // Currently we will default to needing an http connector for service -> service communication if (connectorFactory instanceof HttpConnectorFactory && !(connectorFactory instanceof HttpsConnectorFactory)) { HttpConnectorFactory httpFactory = (HttpConnectorFactory) connectorFactory; port = httpFactory.getPort(); } } } if (port == null) { throw new RuntimeException("Could not determine http port"); } this.httpPort = port; }
if ( DefaultServerFactory.class.isAssignableFrom(serverFactory.getClass()) ) mainPort = portFromConnectorFactories(((DefaultServerFactory)serverFactory).getApplicationConnectors()); adminPort = portFromConnectorFactories(((DefaultServerFactory)serverFactory).getAdminConnectors());
@SuppressWarnings("unchecked") public THIS overrideAdminPort(int p) { AbstractServerFactory sf = serverFactory(); if (sf instanceof SimpleServerFactory) { // no admin port; just ignore } else if (sf instanceof DefaultServerFactory) { DefaultServerFactory dsf = (DefaultServerFactory) sf; ((HttpConnectorFactory)dsf.getAdminConnectors().get(0)).setPort(p); } else { throw new IllegalStateException("Unrecognized ServerFactory: "+sf.getClass().getName()); } return (THIS) this; }
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)); }
@Override public void run(T configuration, Environment environment) throws Exception { DefaultServerFactory factory = new DefaultServerFactory(); factory.setAdminConnectors(Lists.<ConnectorFactory>newArrayList()); configuration.setServerFactory(factory); }
@Override @JsonProperty("server") @Value.Default public ServerFactory getServerFactory() { return new DefaultServerFactory(); }
private int getHttpPort(Configuration config) { ServerFactory serverFactory = config.getServerFactory(); if (!(serverFactory instanceof DefaultServerFactory)) { throw new IllegalStateException("Server factory is not an instance of DefaultServerFactory"); } List<ConnectorFactory> connectors = ((DefaultServerFactory) serverFactory).getApplicationConnectors(); for (ConnectorFactory connector : connectors) { if (connector instanceof HttpConnectorFactory) { return ((HttpConnectorFactory) connector).getPort(); } } throw new IllegalStateException("Unable to determine HTTP port"); }
@Override public void run(Configuration configuration, Environment environment) throws Exception { ((HttpConnectorFactory) ((DefaultServerFactory) configuration.getServerFactory()).getApplicationConnectors().get(0)).setPort(0); ((HttpConnectorFactory) ((DefaultServerFactory) configuration.getServerFactory()).getAdminConnectors().get(0)).setPort(0); environment.jersey().register(MetadataResource.class); } }
private int getAdminHttpPort(Configuration config) { ServerFactory serverFactory = config.getServerFactory(); if (!(serverFactory instanceof DefaultServerFactory)) { throw new IllegalStateException("Server factory is not an instance of DefaultServerFactory"); } List<ConnectorFactory> connectors = ((DefaultServerFactory) serverFactory).getAdminConnectors(); for (ConnectorFactory connector : connectors) { if (connector instanceof HttpConnectorFactory) { return ((HttpConnectorFactory) connector).getPort(); } } throw new IllegalStateException("Unable to determine admin HTTP port"); }
private int getHttpPort(Configuration config) { ServerFactory serverFactory = config.getServerFactory(); if (!(serverFactory instanceof DefaultServerFactory)) { throw new IllegalStateException("Server factory is not an instance of DefaultServerFactory"); } List<ConnectorFactory> connectors = ((DefaultServerFactory) serverFactory).getApplicationConnectors(); for (ConnectorFactory connector : connectors) { if (connector instanceof HttpConnectorFactory) { return ((HttpConnectorFactory) connector).getPort(); } } throw new IllegalStateException("Unable to determine HTTP port"); }
@Override public void run(Configuration configuration, Environment environment) throws Exception { ((HttpConnectorFactory) ((DefaultServerFactory) configuration.getServerFactory()).getApplicationConnectors().get(0)).setPort(0); ((HttpConnectorFactory) ((DefaultServerFactory) configuration.getServerFactory()).getAdminConnectors().get(0)).setPort(0); environment.jersey().register(EagleMetricResource.class); } }
private int getAdminHttpPort(Configuration config) { ServerFactory serverFactory = config.getServerFactory(); if (!(serverFactory instanceof DefaultServerFactory)) { throw new IllegalStateException("Server factory is not an instance of DefaultServerFactory"); } List<ConnectorFactory> connectors = ((DefaultServerFactory) serverFactory).getAdminConnectors(); for (ConnectorFactory connector : connectors) { if (connector instanceof HttpConnectorFactory) { return ((HttpConnectorFactory) connector).getPort(); } } throw new IllegalStateException("Unable to determine admin HTTP port"); }
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; } }
serverFactory.setRequestLogFactory(requestLog); serverFactory.setGzipFilterFactory(gzip); this.server = serverFactory.build(environment);
@Provides @Singleton @SelfHostAndPort public HostAndPort provideSelfHostAndPort(ServerFactory serverFactory) { // Our method for obtaining connector factories from the server factory varies depending on the latter's type List<ConnectorFactory> appConnectorFactories; if (serverFactory instanceof DefaultServerFactory) { appConnectorFactories = ((DefaultServerFactory) serverFactory).getApplicationConnectors(); } else if (serverFactory instanceof SimpleServerFactory) { appConnectorFactories = Collections.singletonList(((SimpleServerFactory) serverFactory).getConnector()); } else { throw new IllegalStateException("Encountered an unexpected ServerFactory type"); } return getHostAndPortFromConnectorFactories(appConnectorFactories); }
@Provides @Singleton @SelfAdminHostAndPort public HostAndPort provideSelfAdminHostAndPort(ServerFactory serverFactory) { // Our method for obtaining connector factories from the server factory varies depending on the latter's type List<ConnectorFactory> adminConnectorFactories; if (serverFactory instanceof DefaultServerFactory) { adminConnectorFactories = ((DefaultServerFactory) serverFactory).getAdminConnectors(); } else if (serverFactory instanceof SimpleServerFactory) { adminConnectorFactories = Collections.singletonList(((SimpleServerFactory) serverFactory).getConnector()); } else { throw new IllegalStateException("Encountered an unexpected ServerFactory type"); } return getHostAndPortFromConnectorFactories(adminConnectorFactories); }
@Provides @Singleton @SelfHostAndPort public HostAndPort provideSelfHostAndPort(ServerFactory serverFactory) { // Our method for obtaining connector factories from the server factory varies depending on the latter's type List<ConnectorFactory> appConnectorFactories; if (serverFactory instanceof DefaultServerFactory) { appConnectorFactories = ((DefaultServerFactory) serverFactory).getApplicationConnectors(); } else if (serverFactory instanceof SimpleServerFactory) { appConnectorFactories = Collections.singletonList(((SimpleServerFactory) serverFactory).getConnector()); } else { throw new IllegalStateException("Encountered an unexpected ServerFactory type"); } return getHostAndPortFromConnectorFactories(appConnectorFactories); }