From 9e77c6d0ae99198981ee3ea4906d7698ec523311 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sun, 19 Aug 2012 14:14:53 +0200 Subject: Make the Benki compatible with Immutant. --- src/mulk/benki/main.clj | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) (limited to 'src/mulk/benki/main.clj') diff --git a/src/mulk/benki/main.clj b/src/mulk/benki/main.clj index 35f6e03..9849a31 100644 --- a/src/mulk/benki/main.clj +++ b/src/mulk/benki/main.clj @@ -143,17 +143,36 @@ (org.bouncycastle.jce.provider.BouncyCastleProvider.)) (Class/forName "net.java.dev.sommer.foafssl.sesame.verifier.SesameFoafSslVerifier")) +(defn run-immutant-swank! + "Call `immutant.repl/start-swank` with the Swank configuration + specified in `benki-config`. If loading the immutant.repl namespace + fails, ignore the error and return `nil` without doing anything. In + case of success, return true." [] + (when-let [swank-config (get @benki-config :swank)] + (when (and (get swank-config :enabled true) + (try + (require 'immutant.repl) + true + (catch Exception e + false))) + ((ns-resolve 'immutant.repl 'start-swank) + (:bind swank-config) (:port swank-config)) + true))) + +(defn init! [] + (init-config!) + (init-middleware!) + (noir.server/load-views-ns 'mulk.benki) + (init-security!) + (future (run-immutant-swank!)) + (future (require 'mulk.benki.xmpp) + ((ns-resolve 'mulk.benki.xmpp 'init-xmpp!))) + (future (require 'mulk.benki.lazychat) + ((ns-resolve 'mulk.benki.lazychat 'init-lazychat!))) + (future (reset! server (run-server)))) + (defn -main [& args] - (do - (init-config!) - (init-middleware!) - (noir.server/load-views-ns 'mulk.benki) - (init-security!) - (future (require 'mulk.benki.xmpp) - ((ns-resolve 'mulk.benki.xmpp 'init-xmpp!))) - (future (require 'mulk.benki.lazychat) - ((ns-resolve 'mulk.benki.lazychat 'init-lazychat!))) - (future (reset! server (run-server)))) + (init!) (loop [] (Thread/sleep 1000000) (recur))) -- cgit v1.2.3