Hi everybody,

I am working in a software company specialized in Eclipse based
product development (and member of the Eclipse Fundation). We are very
interesting in clojure features and we plan to use it in some of our
products. I am currently working on clojure integration in OSGi
Bundles in order to embed code in Eclipse plugins. As mentioned in
some posts the biggest problems is class loading. Indeed in OSGi each
bundle has its own class loader and class loading is not based on the
application classpath or on the current thread class loader.
Consequently, it is very difficult to make clojure work with java code
and to use OSGi visibility and dependencies system inside clojure. I
think the best solution is to use bundles class loader inside clojure
class loading system. I developed a proof of concept that uses a new
class loader that extends  clojure.lang.DynamicClassLoader with bundle
class loading capability. To know which bundle use to load classes or
script file the class loader uses the current namespace which has to
reflect the bundle name (this is the java convention for bundles). In
order to use this new class loader I had to modified
clojure.lang.RT#baseLoader and makeClassLoader and
clojure.lang.core#import. Moreover to test this I made a experimental
Eclipse Builder that enable AOT compilation of mixed clojure and java
plugin. So far it seems to work well: clojure and java interact
seamlessly and it is very fun to interact dynamically with an Eclipse
instance!

I had some questions to the clojure community:
 * Whether it is possible to overload clojure class loading without
introducing dependencies in clojure's core?
 * If their are some people interested in this application of clojure?
(I can made my sources available)

Moreover I will made a post on Eclipse E4 project mailing list (work
on the future of Eclipse) as they are very interested in dynamic
languages.

BR,

Gaetan

--~--~---------~--~----~------------~-------~--~----~
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
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