Thanks Sean for the detailed information. This will be really useful to me.
/Karl On 25/05/2012, at 23.30, Sean Corfield wrote: > On Fri, May 25, 2012 at 1:46 PM, Phil Hagelberg <p...@hagelb.org> wrote: >> On Fri, May 25, 2012 at 1:41 PM, Karl Krukow <karl.kru...@gmail.com> wrote: >>> If I'm embedding swank clojure server in non-development, the code would >>> need to start up swank - how would I do that? >> Just add swank as a non-dev dependency. The swank-clojure readme >> actually covers how to do embedding. > > Specifically: > > Add a dependency on [swank-clojure "1.4.2"] > > Then in your code: > > (swank.swank/start-server :host "0.0.0.0" :port 4567) ;; use whatever > port you want, default is 4005 > > You can programmatically stop the server with: > > (swank.swank/stop-server) > > The :host specifies the IP (or hostname) to listen on so if you want > external access you'll need to listen on an IP that is externally > accessible. If you listen on "0.0.0.0" then it'll listen on any IP > address so you can REPL in from outside as well as directly on server > itself (on 127.0.0.1). Our servers have multiple IP addresses and this > caught me out at first when working with our data center folks and > setting up VPN/DMZ access to the host/port. > > Another thing that was a bit of a problem for us was that swank.swank > does a bunch of stuff at initialization that got in our way (I don't > remember details) so we actually resolve the symbols at runtime so > swank.swank is only loaded when we actually start the swank server: > > (defn start-swank > "If a swank port is defined for this environment, attempt to start a > swank server on that port. Will throw an exception if it's already > running on that port etc." > [] > (require 'swank.swank) > (when-let [start-server (resolve (symbol "swank.swank/start-server"))] > (start-server :host "0.0.0.0" :port (:swank-port @my-settings)))) > > my-settings is a delayed map containing application configuration data > (we delay it because the app needs to bootstrap part way in order to > read the configuration which gets stored in the map). We use different > swank ports on different machines to avoid confusion when > slime-connect'ing in from Emacs. > -- > Sean A Corfield -- (904) 302-SEAN > An Architect's View -- http://corfield.org/ > World Singles, LLC. -- http://worldsingles.com/ > > "Perfection is the enemy of the good." > -- Gustave Flaubert, French realist novelist (1821-1880) > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en