Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?

Für die meisten Java Projekte braucht man ein BE-Model, das am besten automatisch generiert wird. Wie kann das innerhalb von Eclipse Luna mit dem EMF durchgeführt werden?

Wir wollen diese Modell Stuktur erzeugen. Eine Mindmap hat 0-* Zweige:

BE

Zuerst Texo und EMF installieren.

Dann ein neues EMF Projekt anlegen über das Menü: File - New - Other:
EMF

Nun erstellen wir ein ecore Model über das Menü: File - New - Other - Eclipse Modeling Framework-Ecore Model:

model

So sieht das Projekt nun aus, mit der mindmap.ecore Model Datei:
eclipse ecor

Nun erzeugen wir zwei Klassen mit ein paar Attribute über New Child - New EClass über das Kontextmenü des Models (2.Zeile):

Dem Projekt muss noch die Texo nature hinzugefügt werden über Kontextmenü des Projektes und Configure - Add/Remove Texo nature:
texo nature

Und schon kann das Model generiert werden über das Kontextmenü des Models: Texo - Generate JPA Annotated Model Code und Dao oder ein anderes gewünschtes Model:
generieren

Das Ergebnis sind diese Java Klassen:
Java Texo

Jetzt können wir auch noch ein EMF Generator Model über das Kontextmenü der selektierten mindmap.ecore generieren:
 EMF Generator Model

 EMF Generator Model erzeuge

Jetzt wollen wir das Model kurz testen. Dazu erstellen wir ein weiteres Projekt vom Typ Maven. Wir ersetzen die pom.xml durch diese Datei:

Und stellen in den Properties für das TWMindmapGen in den Texo Einstellungen diese Pfade ein, damit in das neue Projekt automatisch generiert wird:

Gen einstellungen

Auch muss das src-gen Verzeichnis dem Classpath hinzugefügt werden. So sieht nun das Testprogramm Start.java und der Workspace aus:
Eclipse Workspace

Was haben wir bisher erreicht?

Wir haben ein grafisches Model Projekt, das nach jeder Änderung am Model automatisch in das Anwendungs Maven Projekt das Java BE-Model aktualisiert.

Wir haben ein Projekt vorbereitet, das mit Hibernate (JPA) das BE persistieren könnte.

Wie kann nun noch ein Annotationen Model erzeugt werden und das BE in die Datenbank (MySql) persistiert werden?

Fortsetzung folgt …

Weitere URLs zum Thema EclipseEMF (engl.) und Texo und JPA Annotationen.