There's been a lot of discussion about isolation in osgi, including "region" based isolation in virgo, composite bundle support in some versions of equinox, and a lot of work on the subsystems spec. Isolation in virgo and the aries subsystem RI appears to be going to be based on a "region" jar in equinox that glyn wrote for virgo.
The subsystems spec looks like it's going to provide a very convenient way of setting up some kinds of isolation, but the plain regions jar while harder to configure allows a lot more flexibility. Also the subsystems spec won't be ready for a while and the RI is certainly lagging behind the spec drafts. I think it would be useful right now to have a direct region-based isolation solution for karaf, and it might be useful to preserve the additional flexibility even when subsystems are available. I've implemented a basic regions integration for karaf (trunk). See https://issues.apache.org/jira/browse/KARAF-1009 Some features: - regions are configured in etc/regions-config.xml. This is installed on first startup, changes are ignored unless you do a clean start - admin commands including region:info that shows the regions, filters, and which bundles are in which region. There are some more commands described in the jira but they are basically useful only for playing around. - features get a new "region" attribute making them install into the specified region - Aries RecursiveBundleTracker has been modified to work with R43 hook based isolation (that's what the region jar uses under the covers) so the aries blueprint extender (and other extenders using the RecursiveBundleTracker) will work on bundles in isolated regions. There's more description in the jira. As an example, I've configured the jpa and jndi features to go in the application region configured in regions-config.xml. The jpa feature has a blueprint plan and if you have up to date aries bundles you should see that the blueprint stuff is created properly. These console commands might be interesting to try: region:info bundle:list -t 0 feature:install jpa bundle:list -t 0 region:info feature:install jndi bundle:list -t 0 region:info I'd really appreciate some feedback on this. I know the admin commands are pretty rudimentary :-) I also know it would be pretty nice to be able to change filters once created. As far as I can tell so far the regions jar doesn't let you do this, and although I think that ability will be needed for subsystems I don't propose to implement it yet. Is this something we want in karaf? thanks david jencks
