I'm working on several related projects using the same basic approach
- embed Felix into an existing web application.  For my day job, I'm
working on embedding Felix to form the core of a new plugin module,
where plugins are deployed as OSGi bundles.  Our goal is to support
complex, dynamically reloadable plugins that may need to depend on
other plugins, and at the same time, be selectively isolated from the
web application's dependencies.  OSGi seems to be a good fit here.

Our first hurdle was determining how the host application and bundles
would interact without resorting to setting the application
classloader as the parent classloader in Felix.  The solution I
devised used a new project, pkgscanner [1], which scans your classpath
looking for packages to auto-generate the Export-Package directive for
the system bundle.  This allows you to easily expose the packages in
your web application to felix bundles with minimal effort, yet retain
all the benefits of versioned package resolution.

Since I'd like to hide the complexities of OSGi for simple plugins, I
plan to use the bnd tool to auto-generate the manifest, if none
detected, when a plugin is uploaded via the UI.  This will allow
simple plugins to be jars with code and the plugin XML file, and
nothing else.  Advanced users will still have the full capabilities of
OSGi.

Anyways, I'm just about done spiking the design, and thought I'd see
if anyone else was doing anything similar or could foresee any major
roadblocks.

Don

[1] http://pkgscanner.googlecode.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to