¿Cómo puedo iniciar Clojure REPL desde mi aplicación java y proporcionar algunas "variables predefinidas" (soy un novato en Clojure, supongo que hay un término mejor para eso)? De hecho, ya intenté hacerlo funcionar por coincidencia ... Empecé con clojure.main
y agregué una llamada adicional a RT.var(). ¿Es esta la forma correcta de hacerlo?Ejecute Clojure REPL desde java, brindando contexto personalizado
import clojure.lang.Symbol;
import clojure.lang.Var;
import clojure.lang.RT;
public class MyClojure {
final static private Symbol CLOJURE_MAIN = Symbol.intern("clojure.main");
final static private Var REQUIRE = RT.var("clojure.core", "require");
final static private Var MAIN = RT.var("clojure.main", "main");
// Provide some context, this is my custimisation...
@SuppressWarnings("unused")
final static private Var Test = RT.var("testme", "myvar", "This is the initial value");
public static void main(String[] args) throws Exception {
REQUIRE.invoke(CLOJURE_MAIN);
MAIN.applyTo(RT.seq(args));
}
}
EDIT: Mi aplicación no es una aplicación web. Es una aplicación de escritorio independiente que básicamente muestra/edita un modelo de datos Pojo. Ahora quiero agregar soporte para exponer el modelo de datos de la aplicación en ejecución a un clojure repl. Entonces podría modificar/inspeccionar el modelo de datos tanto a través de la aplicación original como de la réplica.
No estoy seguro si eso es realmente lo que estoy buscando. Si lo dices, entonces tal vez tengas razón, pero mira mis ediciones anteriores. – zedoo
, entonces es incluso más fácil que eso, solo llame a 'create-repl-server 11111' y conéctese a localhost. no tiene que preocuparse de intentar obtener un servidor web para iniciar su repl, puede hacerlo directamente. –
Pero supongo que quisiera iniciarlo desde dentro de mi aplicación java "host". – zedoo