I don't know if I've read correctly , but I beleive that you intent to make a "bootloader" a la OSGi. I just want to share my experience hoping that it might be useful.
Weak point of OSGi:
I'm curently using an OSGi framework and I don't like to handcode that many information in the bundle's manifest.
Each time that I import a class from another bundle (a think that I'm not always consious while coding because of the auto import feature of modern IDEs) I have to update the manifest. When you work on 30 bundles or more that starts to be a problem. The import / export header should be automatically generated.
Wishes:
I wish that the loader could load modules in parallele (taking into account module dependencies) just like Mac OS X does at startup. This way startup could be faster, optimized.
I wish that I could visualize the dependency map of the modules. Right now I have to be careful to create/update the documentation of the map. I don't like that because the documentation is disconnected from the real think, so if I'm not careful it could potentially be wrong ... and manually checking all those relationships is a pain.
I also hope that special attention is put on code update, starting and stoping of modules. A satisfactory answer has to be given to this case: Imagine a system that has 2 modules A and B. B needs A to work. Let's say I want to update the code of module A. The best scenario would be to update the code without restarting B (if that is possible, for example, if method signatures used by B haven't changed).
If you have to update serveral modules it would be nice not to have to worry for the update order (I would just send the modules and say update code).
Please automate the processes that can be automatically discovered.
Posted by: urddd on June 19, 2005 at 09:31 AM