Skip to content

Commit

Permalink
Reworked startup implementation in order to pass server properties vi…
Browse files Browse the repository at this point in the history
…a nimrod.conf.
  • Loading branch information
sbtourist committed Jul 22, 2012
1 parent 3b5f2a1 commit e7a3493
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 39 deletions.
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
[org.slf4j/slf4j-api "1.6.1"]
[org.slf4j/slf4j-log4j12 "1.6.1"]]
:repositories {"typesafe" "http://repo.typesafe.com/typesafe/releases"}
:aot [nimrod.web.startup])
:aot [nimrod.core.startup])
12 changes: 9 additions & 3 deletions src/nimrod/conf/setup.clj → src/nimrod/core/setup.clj
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
(ns nimrod.conf.setup
(ns nimrod.core.setup
(:require
[clojure.java.io :as io])
(:use
[nimrod.core.metric]
[nimrod.core.store]
[nimrod.log.tailer])
[nimrod.log.tailer]
[nimrod.web.server])
(:import [com.typesafe.config ConfigFactory]))

(defn- setup-logs [conf]
Expand All @@ -19,7 +20,12 @@
"disk" (setup-metric-store (new-disk-store "nimrod-data/db" options sampling))
(throw (IllegalStateException. (str "Bad store configuration: " (store "type")))))))

(defn- setup-server [conf]
(when-let [server (.get conf "server")]
(start-server (.get server "port"))))

(defn setup [source]
(let [conf (.unwrapped (.root (ConfigFactory/parseFile (io/file source))))]
(setup-store conf)
(setup-logs conf)))
(setup-logs conf)
(setup-server conf)))
7 changes: 7 additions & 0 deletions src/nimrod/core/startup.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns nimrod.core.startup
(:gen-class)
(:require [clojure.tools.logging :as log])
(:use [nimrod.core.setup]))

(defn -main []
(try (setup "nimrod.conf") (catch Exception ex (log/error (.getMessage ex)))))
7 changes: 1 addition & 6 deletions src/nimrod/web/server.clj
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
(ns nimrod.web.server
(:require
[clojure.tools.logging :as log])
(:use
[ring.adapter.jetty]
[nimrod.core.util]
[nimrod.conf.setup]
[nimrod.web.app]))

(defn start [port]
(try (setup "nimrod.conf") (catch Exception ex (log/warn (.getMessage ex))))
(defn start-server [port]
(run-jetty nimrod-app {:port port :join? false}))
7 changes: 0 additions & 7 deletions src/nimrod/web/startup.clj

This file was deleted.

22 changes: 0 additions & 22 deletions test/nimrod/conf/setup_test.clj

This file was deleted.

30 changes: 30 additions & 0 deletions test/nimrod/core/setup_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns nimrod.core.setup-test
(:use
[clojure.test]
[nimrod.core.setup]
[nimrod.core.store]
[nimrod.log.tailer]
[nimrod.web.server]))

(deftest setup-logs
(let [log (atom #{})]
(with-redefs [start-tailer #(swap! log conj (str %1 ":" %2 ":" %3 ":" %4))
new-disk-store (fn [_ _ _] nil)]
(setup "test/nimrod1.conf")
(is (contains? @log "1:log1:1:true"))
(is (contains? @log "2:log2:2:false")))))

(deftest setup-disk-store
(let [path (atom nil) options (atom nil) sampling (atom nil)]
(with-redefs [new-disk-store (fn [p o s] (reset! path p) (reset! options o) (reset! sampling s))]
(setup "test/nimrod2.conf")
(is (= "nimrod-data/db" @path))
(is (= {"cache.entries" 1 "cache.results" 2 "defrag.limit" 3} @options))
(is (= {"test.frequency" 10} @sampling)))))

(deftest setup-server
(let [data (atom nil)]
(with-redefs [start-server #(reset! data %1)
new-disk-store (fn [_ _ _] nil)]
(setup "test/nimrod3.conf")
(is (= 8080 @data)))))
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions test/nimrod3.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
server {
port : 8080
}

0 comments on commit e7a3493

Please sign in to comment.