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]