The Eclipse Modeling Framework (EMF) is an open source framework targeting Model-Driven Architecture (MDA) development. For the few of us lucky enough to get a UML model, it can help us turn the documentation into code. For the rest of us, it is another tool to convince your boss that spending the time to model your solution can really pay off. In addition to generating Java code with all sorts of bells and whistles, EMF can also generate Eclipse plug-ins and graphical, customizable editors. When you change your model (it happens, really), the EMF can keep the code synchronized to your model at the click of a button.
The EMF-generated code is no throw-away solution either. It supports the standard create, retrieve, update, and delete operations, and it also supports cardinality constraints, complex relationships and inheritance structures, containment definitions, and a suite of attribute descriptions. The generated code provides notification, referential integrity, and customizable persistence to XMI. All you have to do is create an object model, which you probably wanted to do anyway.
EMF is relatively new, but it shows promise and there are good signs for continued support. It is an implementation of a public standard, the Object Management Group’s Meta-Object Facility (MOF), and it now supports an enhancement of version 2. Further, EMF is the basis of the Eclipse projects EMF:XSD and Hyades, and is used by most of the IBM® WebSphere® Studio products. Version 2 development has already begun, and development builds should be coming out soon. The plans include better XML Schema support, more flexible code generation, and mapping between models.