   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)

           [org.eclipse.jetty.server.handler AbstractHandler]
           [org.eclipse.jetty.util.thread ThreadPool QueuedThreadPool]
           [org.eclipse.jetty.util.ssl SslContextFactory]
           [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))
        proxyf (if (:async? options) async-proxy-handler proxy-handler)]
    (.setHandler server (proxyf handler))
    (when-let [configurator (:configurator options)]
      (configurator server))
    (try
