Thanks for the quick response, Richard.

I'll clarify my 'extender model' comment a little more.  We're writing a
web application which is sold as an installable software product.  There
are two use cases right now, and maybe more in the feature, where there
are bundles which we would like to deliver to customers as a
subscription service.  These bundles don't provide new versions of
existing services, or completely new services, they only provide
additional implementations of existing interfaces (where the interfaces
already exist in the classpath).  

One of these use cases is deploying new reports to the server, where the
bundle for the report would contain some proprietary files related to
our report engine, a POJO implementing an interface in the classpath,
some resources such as images.  As these bundles are deployed, we'll be
listening for their deployment and maintaining a registry of their
availability, so that when users go to find which reports are available
the newly deployed reports will show up.  We'll also be extracting the
report-engine files and resources to a location on disk, which is
required for the report engine.

The report POJO might need access to any number of packages which may or
may not already be on the classpath.  When I write the code (which lives
in the classpath) to instantiate Felix, I don't want to have to
predetermine which packages future report bundles will and will not need
access to. I also don't want to export packages A and B to the system
classpath, and end up with the unforeseen dependency on package C in
future bundles.  I could always include package C in those bundles, but
then I would run into the problem where there were two instances of
package C running.

If I'm thinking incorrectly about this, please let me know.  I think the
answer you gave me (setting boot delegation to *) gives me the answer I
need, but I at least wanted to talk through the use case in case it
gives you an additional use case for Felix.

Again, thanks for your help!

Matt

-----Original Message-----
From: Richard S. Hall [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 30, 2007 8:52 AM
To: [email protected]
Subject: Re: osgi.parentClassLoader

That is Equinox-specific...we had talked briefly about allowing a class 
loader to be passed into the Felix constructor for delegation purposes, 
but didn't really have a compelling reason to do so.

Anyhow, Felix doesn't separate the framework classes from the 
application class loader, like Equinox does. So, if you want to expose 
everything on the class path to your bundles, then I am pretty sure it 
is sufficient to just set boot delegation to "*".

I do not really understand your comment about using the extender model 
instead of the service model and therefore isolation is not necessary. 
Use of the extender model is orthogonal to isolation. It is probably 
still better to set the framework system packages property to explicitly

list the packages to expose from the class path, that way your bundles 
can explicitly import them so you know their dependencies. The system 
packages list only needs to be maintained in a single place in the 
framework for all bundles and most bundle development tools will 
automatically calculate your bundle imports, so you don't have to do 
anything there...

-> richard

Matt Clark wrote:
> Hi all,
>
>  
>
> Does Felix support the property osgi.parentClassLoader, or is that an
> Equinox-specific configuration setting?  I am embedding Felix in a
webapp to
> register extensions to our application, and would like to be able to
use the
> 'fwk' setting to expose all packages known by the classloader that
loaded
> the Felix framework to bundles.  I've read that this could also be
done
> through extension bundles, but 1) I've read about some recent bugs
with
> those
(http://www.mail-archive.com/[EMAIL PROTECTED]/msg01283.html), and
> 2) the thought of having to maintain a list of all packages which we
would
> like to be available to the bundles scares me.
>
>  
>
> FWIW, our use case is pretty simple.  We would like to be able to
hot-deploy
> extensions (classes and resources) to our application, and these will
all
> follow the 'extender' model rather than the 'service' model.  As such,
I
> really don't care about the bundles being isolated from the classpath.
>
>  
>
> Any help is appreciated :-)
>
>  
>
> Thanks,
>
> Matt Clark
>
>
>   

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


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

Reply via email to