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

Reply via email to