diff --git a/src/ring/server/leiningen.clj b/src/ring/server/leiningen.clj index 4f4bb06..1c2d6cb 100644 --- a/src/ring/server/leiningen.clj +++ b/src/ring/server/leiningen.clj @@ -3,12 +3,18 @@ (:require [ring.server.standalone :as standalone])) (defn- load-var [sym] - (require (-> sym namespace symbol)) - (find-var sym)) + (when sym + (require (-> sym namespace symbol)) + (find-var sym))) (defn serve "Start a server from a Leiningen project map." [project] (standalone/serve (load-var (-> project :ring :handler)) - {:join? false, :open-browser? false})) + (merge + {:join? true} + (:ring project) + (-> project :ring :adapter) + {:init (load-var (-> project :ring :init)) + :destroy (load-var (-> project :ring :destroy))}))) diff --git a/test/ring/server/test/leiningen.clj b/test/ring/server/test/leiningen.clj index 21c65ef..0caed9e 100644 --- a/test/ring/server/test/leiningen.clj +++ b/test/ring/server/test/leiningen.clj @@ -3,10 +3,12 @@ ring.server.leiningen ring.server.test.utils)) -(def project-clj - `{:ring {:handler default-handler}}) +(def basic-project-clj + `{:ring {:handler default-handler + :adapter {:join? false} + :open-browser? false}}) (deftest serve-test (testing "basic project.clj" - (with-server (serve project-clj) + (with-server (serve basic-project-clj) (is-server-running-on-port 3000))))