package grails.plugin.lightweightdeploy.connector; import grails.plugin.lightweightdeploy.Configuration; import org.eclipse.jetty.server.AbstractConnector; import java.util.Set; public abstract class AbstractConnectorFactory { private HttpConfiguration configuration; public AbstractConnectorFactory(HttpConfiguration configuration) { this.configuration = configuration; } public abstract Set<? extends AbstractConnector> build(); protected void applyConfiguration(AbstractConnector connector) { connector.setAcceptorPriorityOffset(configuration.getAcceptorThreadPriorityOffset()); connector.setAcceptors(configuration.getAcceptorThreads()); connector.setAcceptQueueSize(configuration.getAcceptQueueSize()); connector.setLowResourcesMaxIdleTime(configuration.getLowResourcesMaxIdleTime()); connector.setMaxBuffers(configuration.getMaxBufferCount()); connector.setMaxIdleTime(configuration.getMaxIdleTime()); connector.setRequestBufferSize(configuration.getRequestBufferSize()); connector.setRequestHeaderSize(configuration.getRequestHeaderBufferSize()); connector.setResponseBufferSize(configuration.getResponseBufferSize()); connector.setResponseHeaderSize(configuration.getResponseHeaderBufferSize()); connector.setReuseAddress(configuration.isReuseAddress()); // Use X-Forwarded-For header for origin IP connector.setForwarded(true); } protected HttpConfiguration getConfiguration() { return configuration; } }