EMF Services provides libraries that extend the core EMF framework with additional services or more powerful versions of services provided by EMF itself.
The project currently provides three components:
- EMF Validation, which extends the core validation support of EMF itself with constraint definitions, customizable model traversal algorithms, constraint parsing for languages, configurable application-specific validation contexts, and validation listeners.
- EMF Transaction, which provides transactional semantics for (local) EMF model changes, with support for multi-threading, model integrity, batched events, and automatic undo/redo support. The framework also features improved integration between EMF and Eclipse, with traceability between EMF models and workspace resources, and integration with the Eclipse jobs API and the Eclipse operation history.
- EMF Query provide a Java API to define semi-declarative queries on EMF models and execute them. This component is no longer maintained.
Each component is developped and released separately, although typically there is a synchronized major release each year, for the Eclipse Simultaneous Release.
Status
This project is in maintenance mode. Its functional scope is considered "done". The components in this project have worked fine as they are for years and for a multitude of projects in the ecosystem. There is currently no plan to make significant functional change.
The main goal is only to make sure the project continues to work reliably and stay compatible with the ecosystem: recent versions of Java, Eclipse Platform, Tycho, etc.
We may merge the occasional bugfix or cleanup if we am confident enough it will not break existing users, but tend to be conservative here. Lots of existing projects depend on these components working in the way they have been for years, so even things that can look like "improvements" can have unintended consequences.
The projects source is hosted on GitHub at https://github.com/eclipse-emfservices. Contributions are welcome, with the above caveat about being extra-careful.
The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.
Member companies supporting this project over the last three months.