Hello Linus,

Linus Tolke wrote:
Hello Luis!
How does the Eclipse handle the loading of modules with loading the required modules without loading everything else? What is required from the module loader system to do this? /Linus

Eclipse RCP is based on OSGi which has an equivalent to our modules named bundles. The bundles define their dependencies declaratively in their META-INF/MANIFEST.MF from other bundles and the build process checks for circular dependencies.

This avoids a bundle which has dependency from GUI classes to be loaded before the bundle which defines the classes or interfaces.

The way to avoid loading all things is via lazy loading of modules. For instance we have the C++ code generator module. If this is declaratively exposed the module loader could know about it without loading the classes that implement it. Then, during the whole ArgoUML runtime, this information is kept close to the declared capability with the notion that if the user selects "C++" in the "source" tab of the properties panel, the classes would be loaded and the functionality called upon.

I think this more or less describes the tricks the Eclipse RCP Plug-in infrastructure is doing to avoid loading all the extensions at start-up time. But, notice that the GUI part I described in the previous paragraph is add-on to the basic OSGi functionality, being this provided by the extension points and extensions defined in the plugin.xml files.

ArgoUML and argoeclipse already have some examples of this, although, for implementing something like the thing I described to avoid loading the C++ code generation module we would probably need to implement an extension point in ArgoUML and the module would provide this extension in the C++ module.

Hope this is clear and thanks for giving me the opportunity to freshen-up these technicalities :-)

Luis

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

Reply via email to