merge handler and core namespaces

This commit is contained in:
Gered 2014-11-06 15:15:21 -05:00
parent bad175df84
commit f84789fa19
4 changed files with 86 additions and 85 deletions

View file

@ -22,7 +22,6 @@
["config/repl/config.edn" (render "config/repl/config.edn" data)] ["config/repl/config.edn" (render "config/repl/config.edn" data)]
["resources/log4j.properties" (render "resources/log4j.properties" data)] ["resources/log4j.properties" (render "resources/log4j.properties" data)]
["src/{{path}}/core.clj" (render "src/root_ns/core.clj" data)] ["src/{{path}}/core.clj" (render "src/root_ns/core.clj" data)]
["src/{{path}}/handler.clj" (render "src/root_ns/handler.clj" data)]
["src/{{path}}/utils.clj" (render "src/root_ns/utils.clj" data)] ["src/{{path}}/utils.clj" (render "src/root_ns/utils.clj" data)]
["src/{{path}}/api/hello.clj" (render "src/root_ns/api/hello.clj" data)]]) ["src/{{path}}/api/hello.clj" (render "src/root_ns/api/hello.clj" data)]])

View file

@ -50,9 +50,10 @@
:repl-options {:init-ns user} :repl-options {:init-ns user}
{{/webservice}} {{/webservice}}
:ring {:handler {{root-ns}}.handler/app :ring {:handler {{root-ns}}.core/app
:init {{root-ns}}.handler/init :init {{root-ns}}.core/init
:destroy {{root-ns}}.handler/destroy} :destroy {{root-ns}}.core/destroy
:port 8080}
{{#webapp}} {{#webapp}}
:cljsbuild {:builds [{:id "dev" :cljsbuild {:builds [{:id "dev"

View file

@ -1,28 +1,95 @@
(ns {{root-ns}}.core (ns {{root-ns}}.core
(:gen-class) (:gen-class)
(:require [ring.middleware.file :refer [wrap-file]] (:require [compojure.core :refer [defroutes]]
[compojure.route :as route]
[noir.util.middleware :refer [app-handler]]
[taoensso.timbre :refer [log set-config!]]
[ring.middleware.file-info :refer [wrap-file-info]] [ring.middleware.file-info :refer [wrap-file-info]]
[ring.server.standalone :refer [serve]] [ring.server.standalone :refer [serve]]
[ring.middleware.file :refer [wrap-file]]
{{#webapp}}
[clj-jtwig.core :as jtwig]
[clj-jtwig.web.middleware :refer [wrap-servlet-context-path]]
{{/webapp}}
[edn-config.core :refer [env]] [edn-config.core :refer [env]]
[{{root-ns}}.handler :refer [app init destroy]])) [prone.middleware :as prone]
{{#postgresql}}
[{{root-ns}}.db :as db]
{{/postgresql}}
[{{root-ns}}.routes :refer [main-public-routes api-routes]]
[{{root-ns}}.middleware :refer [wrap-exceptions not-found-handler]]
[{{root-ns}}.utils :refer [log-formatter]]))
(defroutes default-handler-routes
(route/resources "/")
(not-found-handler))
(def app
(app-handler
[main-public-routes api-routes default-handler-routes]
:middleware [(if (env :dev)
prone/wrap-exceptions
wrap-exceptions){{#webapp}}
wrap-servlet-context-path{{/webapp}}]
:access-rules []
:formats [:json-kw :edn]))
(defn init []
(set-config! [:shared-appender-config :spit-filename] "{{root-ns}}.log")
(set-config! [:appenders :spit :enabled?] true)
(set-config! [:fmt-output-fn] log-formatter)
(log :info "Starting up ...")
(if (env :repl)
(log :info "Running in REPL."))
{{#webapp}}
(when (env :dev)
(log :info "Running in :dev environment.")
(log :info "Disabling Jtwig template caching.")
(jtwig/set-options! :cache-compiled-templates false)
(jtwig/set-options! :check-for-minified-web-resources false))
{{/webapp}}
{{#webservice}}
(when (env :dev)
(log :info "Running in :dev environment."))
{{/webservice}}
{{#postgresql}}
(try
(db/init!)
(log :info "Database access initialized.")
(catch Exception ex
(throw (Exception. "Database not available or bad connection information specified." ex))))
{{/postgresql}}
(log :info "Application init finished."))
(defn destroy []
(log :info "Shutting down ..."))
;; support functions for starting the web app in a REPL / running an uberjar directly
;; (not used otherwise)
(defonce server (atom nil)) (defonce server (atom nil))
(defn get-handler [] (defonce server (atom nil))
(-> #'app
(wrap-file "resources")
(wrap-file-info)))
(defn start-server [& [port]] (defn start-server [& [port]]
(let [port (if port (Integer/parseInt port) 3000)] (let [port (if port (Integer/parseInt port) 8080)]
(reset! server (reset! server
(serve (get-handler) (serve
{:port port (-> #'app
:init init (wrap-file "resources")
:auto-reload? true (wrap-file-info))
:destroy destroy {:port port
:join? false :init init
:open-browser? (not (env :dont-open-browser?))})) :auto-reload? true
:destroy destroy
:join? false
:open-browser? (not (env :dont-open-browser?))}))
(println (str "You can view the site at http://localhost:" port)))) (println (str "You can view the site at http://localhost:" port))))
(defn stop-server [] (defn stop-server []
@ -30,4 +97,4 @@
(reset! server nil)) (reset! server nil))
(defn -main [& args] (defn -main [& args]
(start-server)) (start-server))

View file

@ -1,66 +0,0 @@
(ns {{root-ns}}.handler
(:require [compojure.core :refer [defroutes]]
[compojure.route :as route]
[noir.util.middleware :refer [app-handler]]
[taoensso.timbre :refer [log set-config!]]
{{#webapp}}
[clj-jtwig.core :as jtwig]
[clj-jtwig.web.middleware :refer [wrap-servlet-context-path]]
{{/webapp}}
[edn-config.core :refer [env]]
[prone.middleware :as prone]
{{#postgresql}}
[{{root-ns}}.db :as db]
{{/postgresql}}
[{{root-ns}}.routes :refer [main-public-routes api-routes]]
[{{root-ns}}.middleware :refer [wrap-exceptions not-found-handler]]
[{{root-ns}}.utils :refer [log-formatter]]))
(defroutes default-handler-routes
(route/resources "/")
(not-found-handler))
(def app
(app-handler
[main-public-routes api-routes default-handler-routes]
:middleware [(if (env :dev)
prone/wrap-exceptions
wrap-exceptions){{#webapp}}
wrap-servlet-context-path{{/webapp}}]
:access-rules []
:formats [:json-kw :edn]))
(defn init []
(set-config! [:shared-appender-config :spit-filename] "{{root-ns}}.log")
(set-config! [:appenders :spit :enabled?] true)
(set-config! [:fmt-output-fn] log-formatter)
(log :info "Starting up ...")
(if (env :repl)
(log :info "Running in REPL."))
{{#webapp}}
(when (env :dev)
(log :info "Running in :dev environment.")
(log :info "Disabling Jtwig template caching.")
(jtwig/set-options! :cache-compiled-templates false)
(jtwig/set-options! :check-for-minified-web-resources false))
{{/webapp}}
{{#webservice}}
(when (env :dev)
(log :info "Running in :dev environment."))
{{/webservice}}
{{#postgresql}}
(try
(db/init!)
(log :info "Database access initialized.")
(catch Exception ex
(throw (Exception. "Database not available or bad connection information specified." ex))))
{{/postgresql}}
(log :info "Application init finished."))
(defn destroy []
(log :info "Shutting down ..."))