merge handler and core namespaces
This commit is contained in:
parent
bad175df84
commit
f84789fa19
|
@ -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)]])
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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 ..."))
|
|
Reference in a new issue