Edapt defines APIs and provides implementations for the following functionality:
- Ecore models to specify the changes between two versions of an Ecore model and to compose these as a complete history of all versions. These models provide means to attach migration instructions to the changes.
- A slim runtime implementation which can be integrated into existing applications and which interprets the change models to automatically migrate old instances to the version needed by the application.
In addition, the operation-based approach requires the following functionality.
- A way to define new operations and to extend existing ones with instructions on how to migrate other artifacts.
- A generic user interface to offer operations to the developer and to inspect the impact of their executions.
- A mechanism to record the operations that are executed on an Ecore model in the editor.
- A way to re-apply the recorded operations to migrate existing artifacts which are not accessible during development.
In addition, the difference-based approach requires the following functionality:
- A way to obtain the changes between two versions of an EMF model.