package io.dropwizard.jetty;
import com.codahale.metrics.MetricRegistry;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.dropwizard.jackson.Discoverable;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.thread.ThreadPool;
/**
* A factory for creating Jetty {@link Connector}s.
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
public interface ConnectorFactory extends Discoverable {
/**
* Create a new connector.
*
* @param server the application's {@link Server} instance
* @param metrics the application's metrics
* @param name the application's name
* @param threadPool the application's thread pool
* @return a {@link Connector}
*/
Connector build(Server server,
MetricRegistry metrics,
String name,
ThreadPool threadPool);
}