私が取り組んでいるCompojureアプリケーションでは、GzipHandlerを動的に使用するようにJettyがプログラムで設定する、ring-jetty-adapterに基づいたRing/Jettyアダプタがあります。
(defn- configurator [server ring-handler]
(.setHandler server
(doto (new HandlerCollection)
(.addHandler (doto (new GzipHandler)
(.setHandler (proxy-handler ring-handler))
(.setMimeTypes "text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,text/javascript,image/svg+xml")))
(.addHandler (doto (new RequestLogHandler) (.setRequestLog (NCSARequestLog.)))))))
この関数は、Serverインスタンスと私のリングハンドラを取り、いくつかのハンドラでそれを設定します。 GzipHandler
はHandlerWrapper
なので、私の(プロキシされた)リングハンドラとその代理人が必要です。また、(gzip-wrapped)Ringハンドラの後に実行されるロギングハンドラを追加します。
complete working versionをチェックしてください。