Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[e4-dev] Dynamic enhancement of bundle Classpath

Hello,

I create a separate thread for this topic, but it's still related to
my experiments with Clojure and Eclipse 4.

I'm trying to find a way for Clojure users to create "lightweight"
contributions to Counterclockwise.

The idea is that they will be able to "drop" several folders in a main
~/.ccw folder.

For instance they might clone 2 user contribs they found on github :

~/.ccw/user-contrib1/

~/.ccw/user-contrib2/

Counterclockwise would dynamically find those 2 folders, and process
them one by one.

For instance processing user-contrib1 would be:

- dynamically add ~/.ccw/user-contrib1/ folder to the classpath
- load the "main" script ~/.ccw/user-contrib1/script.clj

I have a first option : I know how to load clojure code with a
specific class loader implanted in the right places => thus I can
create a URLClassLoader() with the user-contrib1/ folder as a URL, and
a BundleClassLoader instance (delegating to CCW's bundle classloader)
as a parent.

Before deciding to commit to this strategy, I'd like to hear from you
guys about alternate ways of doing this. Either OSGi specific, either
Eclipse specific (even calling internal stuff of Eclipse, providing
that it's stable internal stuff not intended to go away with a next
release).

For instance, another idea I have is to dynamically create a bundle
per user contrib, and dynamically install / start them via OSGi.  (the
user contrib would depend on CCW's bundle, as well as use the export:
directive to reference its own classpath on the filesystem).


Thoughts ?


Thanks in advance,

-- 
Laurent


Back to the top