[Uml-devel] u2 plugins architecture
Andrew Sutton
ansutton at kent.edu
Mon Mar 10 06:38:07 UTC 2003
i'm not entirely certain how to proceed building the plugin architecture. it's
not really difficult, but it's not precisely easy either. here's the basic
requirements.
to put simply, u2 needs an event driven plugin system that allows semi-dynamic
configuration of on-demand plugin loading. what does that mean. i don't know.
actually, it means that when a particular even happens, we load a plugin.
when that plugin is loaded, it has the option of loading other plugins.
here's an example event for the application (umbrellorc?)
[OnStartup]
Load Plugins= libu2_mof-1.4 libu2_xmi
here's another example that defines some functionality for creating new
models.
[Metamodels]
UML = libu2_uml-1.4 libu2_uml-viz
CWM = libu2_cwm-1.0 libu2_cwm-viz
MOF = libu2_model-viz
this isn't really an event system, but it's still configuration. When the menu
is created, this information could be used to create the popup under Menu |
New. When a metamodel is selected, the listed plugins are loaded.
additionally, each plugin can have its own configuration file that defines
similar properties. for example, libuml-vizrc (the vizualization library for
UML - it does all the gui work).
[OnLoad]
Load Plugins = libu2_uml-patterns libu2_uml-metrics libu2_uml-layout
then there'd probably some other configuration information regarding
capabilities or something like that.
as for implementation, i'm torn between using KParts::Plugin and just KLibrary
for this stuff. I have a suspicion that we'll probably need to be using
KLibrary for the simple fact that it doesn't have anything tied to it. KParts
seems to assume certain aspects of the application that might not be
appropriate for our architecture. i'm not 100% on this - carsten, would you
care to comment here? i'd love a good pros/cons on using KParts - i haven't
been able to find one. i'd also like to write as little code as possible ;) -
i'm already generating close to .5 million.
andy
More information about the umbrello-devel
mailing list