The Eclipse Modeling Framework enables developers to easily build models and provides a mature infrastructure. However, it is difficult to know the possibilities of EMF and to assess the many extension projects that are available in the Eclipse ecosystem. The talk will describe the journey and the pitfalls of defining the AMALTHEA model and implementing the model infrastructure in Eclipse APP4MC. The platform is in use in the automotive industry and provides (after several optimizations) the following features:
- efficient handling of large real-world models with hundred thousands of objects
- extendible use-case specific validations (open source additions are contributed by 3rd party tool vendors)
- reusable Java components (model, validation, migration) published on Maven Central
- extendible visualization framework
The talk will show our attempts and choices regarding the following topics:
- Model definition with Xcore
- Unique identifiers (Intrinsic IDs)
- Derived attributes
- Custom data types
- Customizing (standard)
- Annotations to customize the UI
- Validation: extended metadata constraints, invariants
- EMF.Edit: icons, labels
- Customizing (extended)
- XMI Serialization: folder scope, cross document links, ...
- Editor: virtual folders, ...
- Platform extensions/optimizations
- Model index (supports fast search and delete)
- Backpointers as derived attributes
- Model creation
- Xtend with a builder pattern (used in unit tests)
- Validations
- Specific validations organized via profiles
- Model modification using the Java API
- Migration (convert model instances to newer versions of the meta model)
- XML/DOM-based migrators
- Documentation
- Ecore Diagram Editor, APP4MC EMF Viewer
Objective of the presentation:
Summary and experiences of defining a real-world EMF model and implementing the model infrastructure in Eclipse APP4MC.
Several components are based on EMF only and can be reused by other projects.
Attendee pre-requisites - If none, enter "N/A":
EMF basic knowledge will help