Plugins Architecture
org.kermeta.interest
This metamodel describes in a simple manner the interest that objects can have for specific resources.
Objects can subscribe or unsubscribe to a resource. When the resource changes, those objects are told to update with the new value of that resource.
A resource can be anything (files, objects in memory) for the moment they have an id.org.kermeta.io.loader
This plugin is used to convert files into Kermeta model. In order to do that, some specific loaders must be implemented. One for each format (kmt, km, ecore...). One specification is that loading one file possibly activates the loading of many files of different format and inter dependent. Then loading a file is not that trivial because actions must be ordered and synchronized within the context. The nice thing here is that there is a metemodel to describe the abstract steps for each loaders so it is quite easy to change them.
org.kermeta.merger
When refactoring the way we handle aspects, we had to face to a new problem: we got some regressions in the interpreter because at runtime a merged vision of models is needed (essentially for reflection). Then before launching the execution, the set of kermeta units is merged into a single one that will be executed.