various cleanups to the ring-handler, leiningen things, etc
This commit is contained in:
parent
295ea2e61a
commit
c557f281f4
|
@ -1,5 +1,5 @@
|
||||||
(ns user
|
(ns user
|
||||||
(:use [blarg.repl]))
|
(:use main))
|
||||||
|
|
||||||
(start-server)
|
(start-server)
|
||||||
|
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
[org.clojure/math.numeric-tower "0.0.4"]
|
[org.clojure/math.numeric-tower "0.0.4"]
|
||||||
[clj-rss "0.1.3"]
|
[clj-rss "0.1.3"]
|
||||||
[clj-metasearch "0.1.1"]]
|
[clj-metasearch "0.1.1"]]
|
||||||
:repl-options {:init-ns blarg.repl}
|
:main main
|
||||||
:plugins [[lein-ring "0.8.10"]
|
:plugins [[lein-ring "0.8.10"]
|
||||||
[lein-environ "0.4.0"]]
|
[lein-environ "0.4.0"]]
|
||||||
:ring {:handler blarg.handler/app
|
:ring {:handler blarg.handler/handle-app
|
||||||
:init blarg.handler/init
|
:init blarg.handler/init
|
||||||
:destroy blarg.handler/destroy}
|
:destroy blarg.handler/destroy}
|
||||||
:profiles
|
:profiles
|
||||||
|
@ -29,8 +29,8 @@
|
||||||
:stacktraces? false
|
:stacktraces? false
|
||||||
:auto-reload? false}
|
:auto-reload? false}
|
||||||
:resource-paths ["env-resources/prod"]}
|
:resource-paths ["env-resources/prod"]}
|
||||||
|
:repl {:source-paths ["dev"]}
|
||||||
:dev {:dependencies [[ring-mock "0.1.5"]
|
:dev {:dependencies [[ring-mock "0.1.5"]
|
||||||
[ring/ring-devel "1.2.1"]]
|
[ring/ring-devel "1.2.1"]]
|
||||||
:source-paths ["dev"]
|
|
||||||
:resource-paths ["env-resources/dev"]}}
|
:resource-paths ["env-resources/dev"]}}
|
||||||
:min-lein-version "2.0.0")
|
:min-lein-version "2.0.0")
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
[clj-jtwig.core :as jtwig]
|
[clj-jtwig.core :as jtwig]
|
||||||
[clj-jtwig.web.middleware :refer [wrap-servlet-context-path]]
|
[clj-jtwig.web.middleware :refer [wrap-servlet-context-path]]
|
||||||
[blarg.config :refer [config-val]]
|
[blarg.config :refer [config-val]]
|
||||||
|
[blarg.middleware :refer [wrap-exceptions]]
|
||||||
[blarg.views.layout :as layout]
|
[blarg.views.layout :as layout]
|
||||||
[blarg.models.db :as db]
|
[blarg.models.db :as db]
|
||||||
[blarg.routes.accessrules :refer [auth-required]]
|
[blarg.routes.accessrules :refer [auth-required]]
|
||||||
|
@ -18,39 +19,31 @@
|
||||||
(route/resources "/")
|
(route/resources "/")
|
||||||
(layout/render-handler "notfound.html" :status 404))
|
(layout/render-handler "notfound.html" :status 404))
|
||||||
|
|
||||||
|
(defonce ring-app (atom nil))
|
||||||
|
|
||||||
|
(defn handle-app [request]
|
||||||
|
(@ring-app request))
|
||||||
|
|
||||||
(defn init []
|
(defn init []
|
||||||
(set-config! [:shared-appender-config :spit-filename] "blarg.log")
|
(set-config! [:shared-appender-config :spit-filename] "blarg.log")
|
||||||
(set-config! [:appenders :spit :enabled?] true)
|
(set-config! [:appenders :spit :enabled?] true)
|
||||||
(set-config! [:fmt-output-fn] log-formatter)
|
(set-config! [:fmt-output-fn] log-formatter)
|
||||||
|
|
||||||
(log :info "blarg started successfully")
|
(log :info "Starting up ...")
|
||||||
|
|
||||||
|
(reset! ring-app
|
||||||
|
(app-handler
|
||||||
|
(find-routes "blarg.routes." app-routes)
|
||||||
|
:middleware [wrap-exceptions wrap-servlet-context-path]
|
||||||
|
:access-rules [{:redirect "/unauthorized" :rule auth-required}]
|
||||||
|
:formats [:json-kw :edn]))
|
||||||
|
|
||||||
(when (= "DEV" (config-val :env))
|
(when (= "DEV" (config-val :env))
|
||||||
(log :info "Dev environment. Template caching disabled.")
|
(log :info "Dev environment. Template caching disabled.")
|
||||||
(jtwig/toggle-compiled-template-caching! false))
|
(jtwig/toggle-compiled-template-caching! false))
|
||||||
|
|
||||||
(log :info "touching database...")
|
(log :info "Touching database...")
|
||||||
(db/touch-databases))
|
(db/touch-databases))
|
||||||
|
|
||||||
(defn destroy []
|
(defn destroy []
|
||||||
(log :info "blarg is shutting down..."))
|
(log :info "Shutting down ..."))
|
||||||
|
|
||||||
(defn wrap-exceptions [handler]
|
|
||||||
(fn [request]
|
|
||||||
(try
|
|
||||||
(handler request)
|
|
||||||
(catch Throwable e
|
|
||||||
(log :error e "Unhandled exception.")
|
|
||||||
(layout/render-response
|
|
||||||
request
|
|
||||||
"error.html"
|
|
||||||
:params {:errorInfo e}
|
|
||||||
:status 500)))))
|
|
||||||
|
|
||||||
(def routes (find-routes "blarg.routes." app-routes))
|
|
||||||
|
|
||||||
(def app (app-handler
|
|
||||||
routes
|
|
||||||
:middleware [wrap-exceptions wrap-servlet-context-path]
|
|
||||||
:access-rules [{:redirect "/unauthorized" :rule auth-required}]
|
|
||||||
:formats [:json-kw :edn]))
|
|
||||||
|
|
15
src/blarg/middleware.clj
Normal file
15
src/blarg/middleware.clj
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
(ns blarg.middleware
|
||||||
|
(:require [taoensso.timbre :refer [log]]
|
||||||
|
[blarg.views.layout :as layout]))
|
||||||
|
|
||||||
|
(defn wrap-exceptions [handler]
|
||||||
|
(fn [request]
|
||||||
|
(try
|
||||||
|
(handler request)
|
||||||
|
(catch Throwable e
|
||||||
|
(log :error e "Unhandled exception.")
|
||||||
|
(layout/render-response
|
||||||
|
request
|
||||||
|
"error.html"
|
||||||
|
:params {:errorInfo e}
|
||||||
|
:status 500)))))
|
|
@ -1,12 +1,14 @@
|
||||||
(ns blarg.repl
|
(ns main
|
||||||
(:use blarg.handler
|
(:require [ring.middleware.file :refer [wrap-file]]
|
||||||
ring.server.standalone
|
[ring.middleware.file-info :refer [wrap-file-info]]
|
||||||
[ring.middleware file-info file]))
|
[ring.server.standalone :refer [serve]]
|
||||||
|
[blarg.handler :refer [handle-app init destroy]])
|
||||||
|
(:gen-class))
|
||||||
|
|
||||||
(defonce server (atom nil))
|
(defonce server (atom nil))
|
||||||
|
|
||||||
(defn get-handler []
|
(defn get-handler []
|
||||||
(-> #'app
|
(-> #'handle-app
|
||||||
(wrap-file "resources")
|
(wrap-file "resources")
|
||||||
(wrap-file-info)))
|
(wrap-file-info)))
|
||||||
|
|
||||||
|
@ -24,3 +26,6 @@
|
||||||
(defn stop-server []
|
(defn stop-server []
|
||||||
(.stop @server)
|
(.stop @server)
|
||||||
(reset! server nil))
|
(reset! server nil))
|
||||||
|
|
||||||
|
(defn -main [& args]
|
||||||
|
(start-server))
|
Reference in a new issue