package burp_clj_montoya; import clojure.java.api.Clojure; import clojure.lang.IFn; import burp.api.montoya.BurpExtension; import burp.api.montoya.MontoyaApi; import burp.api.montoya.logging.Logging; public class BurpExtender implements BurpExtension { @Override public void initialize(MontoyaApi api) { Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); IFn require = Clojure.var("clojure.core", "require"); // API hook is stored globally in a state atom for later use require.invoke(Clojure.read("burp-clj-montoya.extender")); IFn set_api = Clojure.var("burp-clj-montoya.extender", "set!"); set_api.invoke(api); require.invoke(Clojure.read("burp-clj-montoya.core")); IFn register = Clojure.var("burp-clj-montoya.core", "register"); register.invoke(api); } }