JaMoPP is a set of Eclipse plug-ins that can be used to parse Java source code into EMF-based models and vice versa. JaMoPP consists of:
a complete Java5 Ecore Metamodel,
a complete Java5 EMFText Syntax, and
an implementation of Java5's static semantics analysis.
Through JaMoPP, every Java program can be processed as any other EMF model. JaMoPP therefore bridges the gap between modelling and Java programming. It enables the application of arbitrary EMF-based tools on full Java programs. Since JaMoPP is developed through metamodelling and code generation, extending Java and embedding Java into other modelling languages, using standard metamodeling techniques and tools, is now possible. To ensure the quality of JaMoPP, it has been successfully tested on a large code base.
Have you ever evolved your metamodel in EMF and your models were no longer valid afterwards? Or have you avoided to evolve your metamodel in order not to invalidate your models? Or have you even deteriorated your metamodel so that it remains downwards compatible to previous versions in order to avoid these problems?
This site introduces COPE, a tool based on EMF that eases the migration of models in response to an evolving metamodel. COPE explicitly records the history of the metamodel as a sequence of changes and allows to attach information of how to migrate models (which is referred to as coupled evolution). The attached information can be used to automatically migrate models to the new version of the metamodel. COPE even goes one step further and allows to reuse combinations of metamodel adaptation and model migration steps across metamodels.
In order not to disturb EMF users in their habits, COPE seamlessly integrates into the Ecore editor. A demonstration of the tool in action can be looked at here. It is planned to contribute COPE to the Eclipse community.