Zunächst ein kleiner Überblick. Alle Modeling-Projekte, die an Helios teilnehmen, sind in der Tabelle 1 aufgelistet. Als Neuzugänge sind das Extended Editing Framework (EEF), MoDisco und Amalgamation zu verzeichnen. Die Projekte Acceleo, Xtext, Xpand und MWE haben seit Galileo den "Brutkasten" des Eclipse-Inkubators verlassen und liegen erstmals als echte 1er- bzw. 3er-Version vor. Außerdem sind zwei Projekte umgezogen: EMF Compare wurde aus EMF Technology in das Projekt EMF versetzt, und MoDisco von GMT nach MDT.
| Modeling Amalgamation Project | Distribution der Modeling-Projekte |
|---|---|
| Eclipse Modeling Framework (EMF) | Kernframework von Eclipse Modeling |
| Connected Data Objects (CDO) | Zentrales Multi-User-Repository für EMF-Modelle |
| EMF Compare | Modellvergleich |
| EMF Query | Modellabfragen |
| EMF Transaction | Modelltransaktionen |
| Net4j Signalling Platform | Kommunikation für CDO |
| EMF Teneo | OR-Mapping für Modelle |
| EMF Validation | Modellvalidierung |
| Ecore Tools | Graphischer Ecore-Editor |
| Mint | JDT-Support für EMF-Code |
| Extended Editing Framework (EEF) | Property-Editoren für Modelle |
| Modeling Workflow Engine (MWE) | Orchestrierung von Modellverarbeitungsschritten |
| Graphical Modeling Framework (GMF) Notation | Diagrammmodell für graphische Editoren |
| Graphical Modeling Framework (GMF) Runtime | Runtime für graphische Editoren |
| Graphical Modeling Framework (GMF) Tooling | Toolsupport für graphische Editoren |
| MoDisco | Modellgestützte Migration von Altanwendungen |
| Object Constraint Language (OCL) | Implementierung des OMG Standards OCL |
| Unified Modeling Language (UML2) | Implementierung des OMG Standards UML2 |
| XML Schema Definition (XSD) | XML/XSD Verarbeitung |
| Atlas Transformation Language (ATL) | Modelltransformation |
| QVT Operational (QVTO) | Implementierung des OMG Standards QVTO |
| Acceleo | Implementierung des OMG Standards MTL |
| Java Emitter Templates (JET) | Codegenerierung für EMF |
| Xpand | Codegenerierung |
| Xtext | Eigene Sprachen entwickeln |
Sehen wir uns nun einmal die wichtigsten Projekte im Einzelnen an.
EMF
Wer meint, dass sich in EMF, dem Kernframework des Eclipse Modeling Projekts, nichts mehr verändert, hat sich getäuscht: Neben drei Arten von Delegates für Verhaltensaspekte von Modellen gibt es jetzt die Integration in Web-Frameworks.Zunächst zu den ValidationDelegates: In EMF 2.6 kann man jetzt Modellvalidierungsregeln in einer interpretierbaren Sprache über EAnnotations direkt im Modell ablegen. Zur Auswertung dieser Regeln wird ein ValidationDelegate als Interpreter benötigt. Wie bei EMF üblich, wird dieser bei einer (Singleton-)Registry angemeldet, wobei ein URI als Schlüssel dient. Die Anmeldung erfolgt entweder deklarativ an einen Extension Point oder programmatisch in Java. Um den Mechanismus der ValidationDelegates zu benutzen, muss man:
- einen ValidationDelegate implementieren und registrieren,
- den ValidationDelegate am EPackage des Ecore-Modells annotieren,
- die Validierungsregeln durch Annotation an den zu überprüfenden Modellelementen deklarieren und
- die Implementierung der Validierungsregeln durch zusätzliche Annotationen hinzufügen.
Fast genauso funktionieren die neuen OperationDelegates, mit denen man die Implementierung von EOperations in einer beliebigen Sprache im Modell annotiert. Ansonsten gleicht das Muster von Registry, Extension Point, Annotationen, Implementierung etc. dem der ValidationDelegates. Das gleiche gilt für die FeatureSettingDelegates, mit denen man abgeleitete Features implementieren kann. Hier kommt allerdings eine zusätzliche Factory ins Spiel. Mehr Details hierzu finden sich auf der "New and Noteworthy" Seite von EMF [1].
Durch die drei neuen Delegates werden Verhaltensaspekte, die bisher nur durch manuelles Implementieren im generierten Code umsetzbar waren, direkt in der Ecore-Beschreibung des Models realisiert. Somit werden sowohl nicht-generierte Modelle als auch andere Implementierungssprachen als Java – in der Dokumentation wird hier insbesondere OCL erwähnt – unterstützt. Weiterhin werden Probleme vermieden, die durch erneutes Generieren aktualisierter Modelle entstehen können. Mit dem Standard-EMF-Baumeditor fühlt sich das Ganze allerdings ein bisschen aufwändig an.
Der Code-Generator von EMF unterstützt jetzt außerdem die Rich Ajax Platform (RAP) und das Google Web Toolkit (GWT) und rückt EMF damit auch in die Interessensphäre Web-basierter Anwendungen. Der GWT-Implementierung fehlt derzeit leider noch der Baumeditor, der aber bald nachgeliefert werden soll. Die Abbildung 1 zeigt einen RAP-basierten EMF-Editor im Browser.




