[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [equinox-dev] BSF, Groovy, OSGi - class resolution

Re: Pax-Script... looks pretty nice... unfortunately, for reasons unknown, I'm sort of stuck on jdk1.5... It's nice to see the various scripting engines moving to OSGi-fication...
I tried doing the BSFManager.setClassLoader(Thread.currentThread().getContextClassLoader()); -- that didn't work either...
One thing I wanted to put out there, that's pretty funny/confusing -- if I use the objects, and never actually declare a class, everything works... take for example:
// Note that bundleContext is declared as a bean in my java bundle that wraps BSF (e.g., bsfManager.declareBean() ); So, in groovy:
def logRef = bundleContext.getServiceRef("org.osgi.service.log.LogService");
def logger = logRef.getService();
logger.log(1, "Test");
The above actually works... yet, if I attempt to declare an actual class, then it fails...  I'm not sure what that is telling me... I want to content that it's a class loader issue versus a class path issue, since it seems to be able to work with the object instances/references, as long as I don't actually type anything... But, maybe that is suggesting just the opposite - that the declaration of the class is a class path issue, not a class loader issue...
OK, my brain could be getting full... I've been racking it over this stuff for a few hours now...
For what it's worth, thought I'd throw that out there... I'd look at the source for pax-script, but that leads back to jsr223 which is jdk6/above and catch-22...  I must say, as compared to how wieldy javax.scripting is (at least when you marry it with OSGi), the pax-script seems to have done all the hard work -- but I just barely scratched the surface on pax-script...
Thanks again, Craig Phillips, Praxis


From: equinox-dev-bounces@xxxxxxxxxxx on behalf of Stuart McCulloch
Sent: Wed 10/8/2008 1:26 PM
To: Equinox development mailing list
Subject: Re: [equinox-dev] BSF, Groovy, OSGi - class resolution

2008/10/9 Craig Phillips <lcphillips@xxxxxxxxxxxxx>

	I'm attempting to do groovy a la BSF, as embedded in an OSGi/equinox bundle...
	I get this "unable to resolve class" exception on something like the following:
	import org.osgi.service.log.* // seems to get passed this line
	def logger = new LogService(); // exception is thrown here
	I have been surfing for help, but the only thing I get is along the lines of external classpath options (versus using the classes as loaded into the bundle)...
	Any ideas/suggestions?   Thanks, Craig Phillips, Praxis
	PS - I'm not considering javax.scripting (jsr-223 I believe) at this time...

even though you're not considering jsr-223, you might want
to look at the OSGi scripting work done by Hendy Irawan:


as that might give you some hints how to solve this issue
( afaik Groovy 1.5.7-SNAPSHOT has OSGi manifests )

	equinox-dev mailing list

Cheers, Stuart