EMF was the first project I hacked on with Eclipse back in the day (technically, it was PDE). I remember spending many painful months working with EMF/GEF together (screw you guys and your different commandstacks ;p) only to realize GMF was on its way out. Here’s a quote from Dave Steinberg (EMF committer extraordinaire) about EMF and what it provides to Callisto:
The Eclipse Modeling Framework provides powerful generative and runtime capabilities for applications based on structured data models. From a simple class diagram or an XML Schema, you can generate a complete Java implementation of the model, along with an editor for it, and take advantage of EMF’s facilities for persistence, notification, validation, and change recording in your application. Callisto includes EMF 2.2, which introduces many exciting new features: a simplified XMLProcessor API for XML persistence; cross-resource containment support; new code generation patterns, allowing, for instance, for all signs of EMF to be suppressed from generated interfaces, or for no interfaces to be generated at all; encryption support in resources; improved XML Schema generation and round-tripping; an extensible model exporter tool; an improved, extensible code generator; and various performance improvements and usability enhancements.
Just to highlight, one big issue I faced with EMF before was around the realm of security (storing sensitive data in your easily opened models). Well, as part of the Callisto release, EMF has finally added the ability to encrypt resources (thanks Marcelo / Ed!). To use encryption, you have to persist your resource properly. For example, this would do:
Map options = new HashMap();