            [org.eclipse.jetty.server.handler AbstractHandler]
            [org.eclipse.jetty.util.thread ThreadPool QueuedThreadPool]
            [org.eclipse.jetty.util.ssl SslContextFactory]
+           [javax.servlet AsyncContext]
            [javax.servlet.http HttpServletRequest HttpServletResponse]))
 
 (defn- ^AbstractHandler proxy-handler [handler]

  :response-header-size - the maximum size of a response header (default 8192)
  :send-server-version? - add Server header to HTTP response (default true)"
  [handler options]
  (let [server (create-server (dissoc options :configurator))]
    (doto server
      (.setHandler (proxy-handler handler)))
    (when-let [configurator (:configurator options)]
      (configurator server))
    (try

  supplied options:

  :configurator         - a function called with the Jetty Server instance
  :async?               - if true, treat the handler as asynchronous
  :port                 - the port to listen on (defaults to 80)
  :host                 - the hostname to listen on
  :join?                - blocks the thread until server ends (defaults to true)
