Craig,

This is starting to sounds a bit like what I had to do to get JSPs to
compile and run in an OSGi environment. You might want to take a look at
some of the code in the org.eclipse.equinox.jsp.jasper project as it might
provide an even better fit in terms of the class loaders you want.
-Simon


|------------>
| From:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |"Craig Phillips" <[EMAIL PROTECTED]>                                         
                                                              |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| To:        |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |"Equinox development mailing list" <equinox-dev@eclipse.org>                 
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Date:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |10/20/2008 12:42 PM                                                          
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Subject:   |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |Ruby addendum: [equinox-dev] BSF, Groovy, class/OSGi resolution              
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|





Hi,

I also managed to successfully get ruby scripting up and running with BSF
and OSGi ... that was another riddle WRT class loaders... I'm using ruby
1.3.0, BTW...  Turns out, it's a similar trick to log4j... Ruby's
JavaSupport.class is essentially hard set to use the context class
loader... So. I basically play the "take away and put back" game... I swap
out the context class loader for my own custom class loader -- which has a
copy of the original context class loader anyway; When the script is
complete, I simply put the original back -- in it's own thread, of
course... This "trick" also didn't "break" groovy...  I'm not doing any
other scripting engines at the moment, but apparently each engine has it's
own "quirkiness"...

Between ruby and groovy, I prefer groovy... the **feel** is a bit closer to
java... Of course, I'm no guru...

For what it's worth, Craig Phillips, Praxis

________________________________

From: [EMAIL PROTECTED] on behalf of Craig Phillips
Sent: Fri 10/17/2008 8:34 AM
To: equinox-dev@eclipse.org
Subject: [equinox-dev] BSF, Groovy, class/OSGi resolution


Hi,

Update to a former post (of which I deleted) on the same subject -- I did
manage to get bsf/groovy working in an OSGi container and do class
resolution...  I was on the right track, thanks to and appreciate of
support from J. Ervin as well as postings around the net -- to write and
plug in a custom class loader...

My problem was that I did not implement all the methods and method
signature variants... I blame that on Sun because: Classloader should be an
interface, not something you extend;

When using BSF/groovy in an OSGi container, you want to write a custom
class loader (be sure to implement findClass() as well as loadClass() --
bsf uses loadClass() while groovy uses findClass() -- go figure) that will
search through the registered bundles in the OSGi container for a class,
noting that Bundle has a method called loadClass() [what, no findClass()
??? LOL];

Anyway, you register your custom class loader to bsf and groovy a la:
BsfManager.setClassLoader()...

BTW - be sure to consult the context class loader as well -- useful for
core classes as well as when junit testing....

Lastly, I did not implement getResource() and variations thereof -- Bundle
does not, IIRC, have anything equivalent [and, I think that makes sense]...

For what it's worth, Craig Phillips, Praxis

(See attached file: winmail.dat)
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

<<inline: graycol.gif>>

<<inline: ecblank.gif>>

Attachment: winmail.dat
Description: Binary data

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to