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)]
["resources/log4j.properties" (render "resources/log4j.properties" 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}}/api/hello.clj" (render "src/root_ns/api/hello.clj" data)]])

View file

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

View file

@ -1,22 +1,89 @@
(ns {{root-ns}}.core
(: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.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]]
[{{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))
(defn get-handler []
(-> #'app
(wrap-file "resources")
(wrap-file-info)))
(defonce server (atom nil))
(defn start-server [& [port]]
(let [port (if port (Integer/parseInt port) 3000)]
(let [port (if port (Integer/parseInt port) 8080)]
(reset! server
(serve (get-handler)
(serve
(-> #'app
(wrap-file "resources")
(wrap-file-info))
{:port port
:init init
:auto-reload? true

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 ..."))