Apart from going a bit cross-eyed from seeing clojure-as-java code from the first time, I get it :-)
Thanks Chas, I'll give it a try and let you know how it goes. Stathis On Feb 15, 3:31 pm, Chas Emerick <c...@cemerick.com> wrote: > You can absolutely run an nREPL server from a mostly-Java application. > Something like this would do (just a sketch, untested): > > //// > private static IFn startServer, stopServer; > > static { > try { > RT.var("clojure.core", > "require").invoke(Symbol.intern("clojure.tools.nrepl.server")); > startServer = RT.var("clojure.tools.nrepl.server", "start-server"); > stopServer = RT.var("clojure.tools.nrepl.server", "stop-server"); > } catch (Exception e) { > throw new RuntimeException(e); > } > > } > > public static Object startServer (int port) { > return startServer.invoke(Keyword.intern("port"), port); > > } > > public static void stopServer (Object server) { > stopServer.invoke(server);} > > //// > > There's already a thin Java wrapper for the nREPL client API > (https://github.com/clojure/tools.nrepl/blob/master/src/main/java/cloj...one > for the server side would be good to cover that use case as well. > > - Chas > > On Feb 15, 2012, at 8:46 AM, Stathis Sideris wrote: > > > > > > > > > It sounds great Chas, especially the wide acceptance that nREPL seems > > to already have with the various tools. > > > I wanted to ask about the potential of this as an embedded Clojure > > REPL in existing Java applications for the purpose of connecting > > remotely and performing inspection (and possibly manipulation?) of the > > current state of the application for debugging purposes. Is this a > > legitimate use case? How easy do you think it would be to achieve this > > with the current version of nREPL? > > > Thanks! > > > Stathis > > > On Feb 14, 2:42 pm, Chas Emerick <c...@cemerick.com> wrote: > >> I have released nREPL 0.2.0-beta1, which should show up in Maven central > >> soon. > > >> For those that don't know, nREPL is "a Clojure network REPL that provides > >> a REPL server and client, along with some common APIs of use to IDEs and > >> other tools that may need to evaluate Clojure code in remote environments": > > >>https://github.com/clojure/tools.nrepl > > >> This release is the result of gathering ideas, feedback, and requirements > >> from dozens of people that need to have a REPL backend in a variety of > >> environments, and want to maximize interoperability of Clojure tooling — > >> much of which inevitably ends up grounding out at running or connecting to > >> a REPL somewhere. > > >> This release marks a thorough breaking change from every aspect the last > >> release of nREPL, 0.0.5. (The rationale for this is detailed in design > >> notes in the project's wiki, for those that haven't followed along.) The > >> result is that a design that settles a number of failings of nREPL's > >> original design, and which provides a number of different vectors of > >> extensibility — similar in many respects to those provided by Ring — that > >> I hope people will take advantage of to build astonishingly cool tools. > > >> Note that pre-release versions of many Clojure tools are already using > >> snapshots of nREPL 0.2.0, including Counterclockwise, Leiningen, and > >> Reply, and as far as I know, more are on their way. > > >> My plans for the near future are to continue to tighten up the > >> documentation, and release an HTTP transport: a Ring handler that exposes > >> nREPL as an HTTP API. > > >> If you have any questions or find some shortcoming, bug, or problem with > >> this release, please reply here or ping me on irc or twitter (`cemerick` > >> in either case). > > >> Happy tooling, > > >> - Chas > > > -- > > 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