Permalink
Browse files

run-jetty configurator applied last. Includes tests.

1 parent 95fac93 commit e7d79315dbb6f60d94b185d01cf3ab69faa2008e Bill Caputo committed Mar 24, 2012
View
8 ring-jetty-adapter/src/ring/adapter/jetty.clj
@@ -77,12 +77,12 @@
:want or :none (defaults to :none)" :want or :none (defaults to :none)"
[handler options] [handler options]
(let [^Server s (create-server (dissoc options :configurator))] (let [^Server s (create-server (dissoc options :configurator))]
- (when-let [configurator (:configurator options)]
- (configurator s))
(doto s (doto s
(.setHandler (proxy-handler handler)) (.setHandler (proxy-handler handler))
- (.setThreadPool (QueuedThreadPool. (options :max-threads 50))) + (.setThreadPool (QueuedThreadPool. (options :max-threads 50))))
- (.start)) + (when-let [configurator (:configurator options)]
+ (configurator s))
+ (.start s)
(when (:join? options true) (when (:join? options true)
(.join s)) (.join s))
s)) s))
View
18 ring-jetty-adapter/test/ring/adapter/test/jetty.clj
@@ -1,7 +1,10 @@
(ns ring.adapter.test.jetty (ns ring.adapter.test.jetty
(:use clojure.test (:use clojure.test
ring.adapter.jetty) ring.adapter.jetty)
- (:require [clj-http.client :as http])) + (:require [clj-http.client :as http])
+ (:import (org.eclipse.jetty.util.thread QueuedThreadPool)
+ (org.eclipse.jetty.server Server Request)
+ (org.eclipse.jetty.server.handler AbstractHandler)))
(defn- hello-world [request] (defn- hello-world [request]
{:status 200 {:status 200
@@ -30,4 +33,15 @@
:key-password "password"} :key-password "password"}
(let [response (http/get "https://localhost:4348" {:insecure? true})] (let [response (http/get "https://localhost:4348" {:insecure? true})]
(is (= (:status response) 200)) (is (= (:status response) 200))
- (is (= (:body response) "Hello World")))))) + (is (= (:body response) "Hello World")))))
+
+ (testing "configurator set to run last"
+ (let [max-threads 20
+ new-handler (proxy [AbstractHandler] [] (handle [_ ^Request base-request request response]))
+ threadPool (QueuedThreadPool. ({} :max-threads max-threads))
+ configurator (fn [server] (.setThreadPool server threadPool) (.setHandler server new-handler))
+ server (run-jetty hello-world {:join? false :port 4347 :configurator configurator})]
+ (is (= (.getMaxThreads (.getThreadPool server)) max-threads))
+ (is (identical? new-handler (.getHandler server)))
+ (is (= 1 (count (.getHandlers server))))
+ (.stop server))))

0 comments on commit e7d7931

Please sign in to comment.