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

Reply via email to