On 22/02/2008, Richard S. Hall <[EMAIL PROTECTED]> wrote:
>
> I understand that you resolved the issue, but I am not sure that this
> is the best approach in the long run. I have some suggestions for
> different approaches too, but these are not good for the long run
> either.
>
> 1. Since the default class path for a bundle is ".", you should be
> able to load your plugin class directly from Bundle.loadClass(), I
> would imagine.
>
> 2. You could create a special installer that you used to install your
> plugin JAR file instead of doing it directly with
> BundleContext.installBundle(). This special installer could
> automatically run them plugin JARs through BND.


FYI, for a good example of 2 check out the wrap scheme from Pax-URL:

   http://wiki.ops4j.org/confluence/display/ops4j/Pax+URL+-+wrap

it provides a URL handler that lets you wrap jars as bundles at runtime

Long run, you probably want to migrate the plugins to bundles in some
> fashion.
>
> -> richard
>
>
> On Feb 21, 2008, at 9:40 PM, Mike Smoot wrote:
>
> > Hi,
> >
> > I'm working on migrating an existing swing application (
> http://cytoscape.org
> > )
> > to OSGi using Felix.  With the help of bnd, I've gotten everything
> > running
> > about how it should, with the exception of our legacy plugin
> > mechanism.  The
> > way the old plugin mechanism works is that a plugin jar file (but
> > not a
> > bundle) is read and we then call ClassLoader.loadClass() on a class
> > found in
> > the jar file.  The problem is that with Felix I get a
> > NoClassDefFoundError
> > when I try to load the class.   I'm assuming this is because none of
> > the
> > packages defined in the plugin jar are found by Felix since the
> > plugin jars
> > aren't bundles or loaded as such.
> >
> > Now, I've managed to work around this problem in two cases.  First
> > is using
> > Equinox, which I'm not terribly keen on using.  Second is by running
> > bnd on
> > each plugin jar, loading them as bundles, jumping through a few
> > hoops to get
> > the correct ClassLoader, and then loading the class.  The problem
> > with the
> > second approach is that I have to wrap all plugins before anything
> > will
> > work.  I'd very much like to avoid this requirement (for now)
> > because this
> > will only work with plugins that I have and not those developed by
> > users.
> >
> > Can anyone provide any guidance on loading classes that aren't part of
> > bundles?  Is this possible with Felix?  I apologize if this is a bit
> > vague,
> > but I'm still very new to OSGi.
> >
> > thanks,
> > Mike
> >
> > --
> > ____________________________________________________________
> > Michael Smoot, Ph.D. Bioengineering Department
> > tel: 858-822-4756 University of California San Diego
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Cheers, Stuart

Reply via email to