Skip to content

Commit

Permalink
update dependencies, add mount + ring-middleware-format + cljs-devtoo…
Browse files Browse the repository at this point in the history
…ls + log4j logging
  • Loading branch information
Heliosmaster committed Jan 16, 2019
1 parent 5a827a2 commit dc947f1
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 56 deletions.
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,28 @@ All notable changes to this project will be documented in this file. This change

## [Unreleased][unreleased]

## 0.1.4 - 2019-01-15
### Added
- Use [mount](https://github.com/tolitius/mount) for component lifecycle
- Include [cljs-devtools](https://github.com/binaryage/cljs-devtools) for easier work on frontend
- Use `org.slf4j/slf4j-log4j12` for logging and include a `log4j.properties` with log-level set to `WARN`, so that logging isn't too verbose by default.

### Changed
- Updated dependencies to Clojure 1.10. Reagent was kept at 0.7.0 for the moment.
- Switched from [ring-transit](https://github.com/jalehman/ring-transit) to [ring-middleware-format](https://github.com/ngrunwald/ring-middleware-format) to do serialization / deserialization

### Removed
- Removed `wrap-cljs-repl` from `cemerick/piggieback`

## 0.1.3 - 2017-05-20
### Changed
- Updated dependencies

## 0.1.2 - 2017-02-05
### Changed
- Updated dependencies

### Fixed
- Added `output-dir` to `prod` profile, due to an error of figwheel.

## 0.1.1 - 2016-01-24
Expand All @@ -21,4 +36,4 @@ All notable changes to this project will be documented in this file. This change
- Project created

[Unreleased]:
https://github.com/Heliosmaster/reagent-ajax/compare/v0.1.0...HEAD
https://github.com/Heliosmaster/reagent-ajax/compare/v0.1.4...HEAD
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
# reagent-ajax

Basic Leiningen template for web applications with
[reagent](https://github.com/holmsand/reagent), using ajax and the
[reagent](https://github.com/reagent-project/reagent), using ajax and the
[transit format](https://github.com/cognitect/transit-clj) to
communicate with the backend.

It integrates [figwheel](https://github.com/bhauman/lein-figwheel) and
makes the `cljs-repl` easily accessible.
It integrates [figwheel](https://github.com/bhauman/lein-figwheel)

## Usage

Expand All @@ -24,6 +23,12 @@ lein new reagent-ajax <project_name>
- Visit `http://localhost:8080`

## Run in production mode
- Compile the clojurescript with

```
lein cljsbuild once prod
```

- Create the jar with

```
Expand Down Expand Up @@ -71,8 +76,3 @@ lein uberjar

Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.

## Acknowledgments

Thanks to [Daniel Marjenburgh](https://github.com/dmarjenburgh) for
inspiration and the code to start the CLJS repl.
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject reagent-ajax/lein-template "0.1.3"
(defproject reagent-ajax/lein-template "0.1.4"
:description "Basic template with reagent and ajax calls using transit"
:url "http://github.com/Heliosmaster/reagent-ajax"
:license {:name "Eclipse Public License"
Expand Down
5 changes: 3 additions & 2 deletions src/leiningen/new/reagent_ajax.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(ns leiningen.new.reagent-ajax
(:use [leiningen.new.templates :only [renderer name-to-path sanitize-ns ->files]]))
(:use [leiningen.new.templates :only [multi-segment renderer name-to-path sanitize-ns ->files]]))

(def render (renderer "reagent-ajax"))

Expand All @@ -15,8 +15,9 @@
["src/clj/{{sanitized}}/server.clj" (render "server.clj" data)]
["project.clj" (render "project.clj" data)]
["README.md" (render "README.md" data)]
[".gitignore" (render ".gitignore")]
[".gitignore" (render "gitignore")]
["dev/clj/user.clj" (render "user.clj" data)]
["src/cljs/{{sanitized}}/core.cljs" (render "core.cljs" data)]
["resources/log4j.properties" (render "log4j.properties" data)]
["resources/public/index.html" (render "index.html" data)]
["resources/public/css/screen.css" (render "screen.css")])))
5 changes: 3 additions & 2 deletions src/leiningen/new/reagent_ajax/core.clj
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
(ns {{ns-name}}.core
(:require [{{ns-name}}.server :as server])
(:require [mount.core :as mount]
[{{ns-name}}.server :as server])
(:gen-class))


(defn start! []
(server/start!))
(mount/start))

(defn -main []
(start!))
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/target
/classes
/checkouts
/generated
pom.xml
pom.xml.asc
*.jar
Expand Down
7 changes: 7 additions & 0 deletions src/leiningen/new/reagent_ajax/log4j.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Root logger should not be chatty
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
50 changes: 24 additions & 26 deletions src/leiningen/new/reagent_ajax/project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,47 @@
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.9.456"]
[ring "1.6.1"]
[compojure "1.6.0"]
[ring-transit "0.1.6"]]
:dependencies [[org.clojure/clojure "1.10.0"]
[org.clojure/clojurescript "1.10.439"]
[ring "1.7.1"]
[mount "0.1.15"]
[compojure "1.6.1"]
[ring-middleware-format "0.7.3"]
[org.slf4j/slf4j-log4j12 "1.7.25"]]

:plugins [[lein-cljsbuild "1.1.6"]]
:plugins [[lein-cljsbuild "1.1.7"]]

:source-paths ["src/clj" "src/cljs"]
:test-paths ["test/clj" "test/cljs"]
:resource-paths ["resources"]
:resource-paths ["resources" "generated"]

:profiles {:dev {:dependencies [[com.cemerick/piggieback "0.2.1"]
[figwheel-sidecar "0.5.10"]
[cljs-ajax "0.6.0"]
[reagent "0.6.0"]]
:profiles {:dev {:dependencies [[figwheel-sidecar "0.5.18"]
[cljs-ajax "0.8.0"]
[binaryage/devtools "0.9.10"]
[reagent "0.8.1"]]
:source-paths ["dev/clj" "dev/cljs"]
:resource-paths ["dev/resources"]}
:uberjar {:main {{ns-name}}.core
:omit-source true
:aot :all
:source-paths ["src/clj" "src/cljs"]
:uberjar-name "{{ns-name}}.jar"}}
:template-additions [".gitignore" "CHANGELOG.md" "resources/public/index.html"]
:template-additions [".gitignore" "resources/public/index.html"]
:cljsbuild {:builds
{:dev {:source-paths ["dev/cljs" "src/cljs"]
:figwheel {:on-jsload {{ns-name}}.dev/on-jsload}
:compiler {:output-to "resources/public/js/app.js"
:compiler {:output-to "generated/public/js/app.js"
:output-dir "generated/public/js/out"
:source-map true
:asset-path "js/out"
:asset-path "/js/out"
:main {{ns-name}}.core
:optimizations :none}}
:optimizations :none
:preloads [devtools.preload]}}
:prod
{:source-paths ["src/cljs"]
:jar true
:compiler {:output-to "resources/public/js/app.js"
:output-dir "resources/public/js/out"
:asset-path "js/out"
:main {{ns-name}}.core
:optimizations :advanced
:pretty-print false}}}}
{:source-paths ["src/cljs"]
:compiler {:output-to "generated/public/js/app.js"
:optimizations :advanced
:pretty-print false}}}}

:repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}

:figwheel {:css-dirs ["resources/public/css"]}
:figwheel {:css-dirs ["generated/public/css"]}
:clean-targets ^{:protect false} [:target-path])
25 changes: 9 additions & 16 deletions src/leiningen/new/reagent_ajax/server.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@
(:require [ring.util.response :as response]
[compojure.route :as route]
[compojure.core :refer [defroutes GET PUT POST]]
[ring.middleware.transit :as transit]
[ring.adapter.jetty :as jetty])
(:import [org.eclipse.jetty.server Server]))

(def server (atom nil))

[mount.core :as mount]
[ring.middleware.format :as ring-format]
[ring.adapter.jetty :as jetty]))

(defroutes routes
(GET "/" req (response/resource-response "index.html" {:root "public"}))
Expand All @@ -19,15 +16,11 @@

(def app
(-> routes
(transit/wrap-transit-response {:encoding :json})
(transit/wrap-transit-body)))
(ring-format/wrap-restful-format)))


(defn start! []
(when-not @server
(reset! server (jetty/run-jetty #'app {:join? false :port 8080}))))
(mount/defstate server
:start (jetty/run-jetty #'app {:join? false
:port 8080})
:stop (.stop server))

(defn stop! []
(when-let [s ^Server @server]
(println "Stopping server")
(.stop @server)
(reset! server nil)))

0 comments on commit dc947f1

Please sign in to comment.