geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject osgi progress
Date Fri, 11 Sep 2009 07:17:57 GMT
I've made some headway in my sandbox osgi framework.  I now have  
pretty much all the modules building as bundles and have the car-maven- 
plugin working enough to build several plugins.  I'm a bit stuck on a  
classloading problem in which a bundle appears to be able to load a  
class but not an interface it implements, in the same bundle (both  
classes are imported and exported).

The car-maven-plugin works by starting a felix framework inside maven  
and deploying bits of geronimo into it.  In order to share classes  
between maven and felix the framework has to export quite a few  
classes that in a real server would be loaded from geronimo bundles.

I think the next step may be to work on getting the bundles that do  
compile to run inside karaf or possibly felix.  Apparently there are  
some tools to help diagnose classloading problems.

With luck I may have some kind of geronimo framework server running in  
karak sometime next week.  Assuming that we agree to move this code  
into trunk, at this point I think there will be a lot of work that can  
be done more in parallel on the plugins part of geronimo.  Basically  
we have to go through all the geronimo code and
-- turn the jars into bundles and make sure they build
-- determine the not-yet-bundle dependencies and either convince the  
source project to bundleize them or repackage them as bundles
-- set up the bundle plugin more precisely with package versions and  
correct imports
-- modify the gbeans to use Bundle or BundleContext instead of  
classloader
-- get the plugins to compile
-- remove unnecessary plugins such as classloader plugins

At this point we'll be able to see just how hard it is to deploy an ee  
app as one or more bundles.

The framework stuff will also need more work including
-- removing unnecessary code such as a lot of the old classloaders
-- clarifying the separation between dependency management and bundle  
lifecycle.
-- deciding whether to use a BundleActivator approach to start  
geronimo plugins or whether to use a blueprint service-like extender  
bundle listener.  Currently I'm using a BundleActivator approach which  
makes it difficult to communicate from one started bundle to another.
-- deciding whether to keep the kernel as a gbean registry or just  
register all gbeans in the service registry as services. 

thanks
david jencks


Mime
View raw message