Review / clean up library metamodel
In #4161 (closed), the current library has been removed in favor of the new re-use library.
In the frame of this ticket, the underlying metamodel of the library should be reviewed. So far, it has not been pruned in order to ensure that old projects can be loaded.
Kernel interfaces
Firstly, this concerns the following interfaces in the kernel:
kernel.ecore:
- ILibraryElement
- ILibraryElementReference
- ILibraryRootElement
- ILibraryPackage
- (ILibrary is also used by the new library implementation)
Generally, it makes sense to keep the current design to anchor the concepts to model reuse in the kernel, so removal / deprecation of these base interface should be done with care.
Derived classes
Moreover, different plugins provide classes implementing these interface that probably can be removed in favor reuse.
Note that removing a non-abstract metamodel class in AF3 models is a two step process that requires 1) to deprecate the class and provide a migration provider to remove/migrate it (see https://git.fortiss.org/af3/af3/-/wikis/FAQ) , and 2) actually removing the class in the subsequent AF3 release.
For classes that are only contained in library files, no migrator is needed since these files will simply be ignored in upcoming AF3 release.
- base.ecore: LibraryElementBase
- expression.ecore/definitions/library/*
- project.ecore
- LibraryProjectConfiguration
- FileLibrary