Thanks for the pointers!  Our long term goal is definitely to migrate to
bundles, but I'll certainly check out the link below as a transition
strategy.

cheers,
Mike

On Thu, Feb 21, 2008 at 9:09 PM, Stuart McCulloch <
[EMAIL PROTECTED]> wrote:

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



-- 
____________________________________________________________
Michael Smoot, Ph.D. Bioengineering Department
tel: 858-822-4756 University of California San Diego

Reply via email to