I am trying to include some Groovy code at runtime, which is already on the
JVM's classloader path. I have succeeded in setting the
groovy.lang.GroovyClassLoader with Clojure's classloader as the Thread's
contextClassLoader, but I'm having troubling getting (import ...) to work.
I discovered so far that (import ...) prefers to use the
clojure.lang.Compiler/LOADER if it's defined (and it is, in my project), so
I tried the following:
(try
(push-thread-bindings {clojure.lang.Compiler/LOADER
(groovy.lang.GroovyClassLoader.)}
;GroovyCL defaults to use contextClassLoader as parent, which is the
Clojure ClassLoader
(import 'my_groovy_class)
(finally (pop-thread-bindings)))
Note that I can successfully do (.. Thread currentThread
getContextClassLoader (loadCLass "my_groovy_class")) once I've set the
contextClassLoader.
What is the way to get (import ...) working so that I can manipulate
my_groovy_class without resorting to forName/createInstance?
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.