© Copyright International Business Machines Corporation 2006. All rights reserved.
© Copyright IBM Deutschland GmbH 2000, 2007. Alle Rechte vorbehalten.
Bei der Erstellung einer Modell-zu-Modell-Umsetzung erfolgt keine automatische Zuordnung der Standard-UML-Profile, wenn das Ziel ein UML-2-Modell ist. Das UML-Profil 'default.epx' wird zum Beispiel nicht automatisch zugeordnet. Sie müssen diese Profile entweder manuell zuordnen oder das Framework 'UMLDefaultLibrariesAddRule' verwenden. Dieses Framework kann manuell zu einer Umsetzung hinzugefügt werden, wenn das Ziel eine 'EClass' eines UML-Modells ist.
Fügen Sie den folgenden Code zur Umsetzung hinzu, um das Framework zu einer Umsetzung hinzuzufügen:
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
protected void addTransformElements(Registry registry) {
add(new UMLDefaultLibrariesAddRule());
addGeneratedTransformElements(registry);
// Sie können weitere Umsetzungselemente nach den hier generierten hinzufügen
// Vergessen Sie nicht, den Tag '@generated' zu entfernen oder 'NOT' zu ihm hinzuzufügen
}
Bei der Erstellung von Modell-zu-Modell-Umsetzungen die Erweiterung "org.eclipse.core.runtime.contentTypes" in einem Plug-in in Ihrem Eclipse-Arbeitsbereich enthalten sein, damit die "Fuse"-Unterstützung in Ihrem Zielmodell gegeben ist. Sie können diese Erweiterung in einem Plug-in angeben, das einen von der Zielmodelldomäne abgeleiteten Domänennamen besitzt. Weitere Informationen zu dieser Erweiterung finden Sie in der Dokumentation zu Erweiterungspunkten im Projekt 'Vergleichen/Zusammenführen'. Dies ermöglicht Ihnen, eine ausgereifte Fuse-Strategie für Ihr Zielmodell zu erstellen. Wenn Sie eine einfachere EMF-Strategie verfolgen, können Sie die folgende Erweiterung angeben (ersetzen Sie hierbei den Platzhalter "xxx" durch die Erweiterung der Zieldatei):
<extension
point="org.eclipse.core.runtime.contentTypes">
<file-association
content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
file-extensions="xxx"/>
</extension>
Bei der Erstellung von Modell-zu-Modell-Umsetzungen müssen die als Eingabe oder Ausgabe angegebenen Ecore-Modelle über entsprechende 'genmodels' verfügen. Sie können den Assistenten 'EMF-Modell' für die Erstellung von 'genmodels' verwenden. Stellen Sie sicher, dass Sie den code nach Erstellung der 'genmodels' generieren. Die 'genmodels' müssen in der Entwicklungsworkbench registriert werden oder sich im gleichen Pfad wie die entsprechenden Ecore-Modelle befinden. Die 'genmodels' müssen die Dateinamenerweiterung '.genmodel', einen ähnlichen Namen und die gleiche Groß-/Kleinschreibung wie die Ecore-Modelle aufweisen. Andernfalls kann die Steuerkomponente für die Umsetzungserstellung das 'genmodel' nicht finden. Wenn die Steuerkomponente für die Umsetzungserstellung die erforderlichen 'genmodels' nicht findet, inaktiviert sie die Codegenerierung.
Wenn Sie eine Umsetzungskonfiguration für die Umsetzung von Modell zu Modell erstellen, müssen Sie eine Datei angeben, die das Zielmodell darstellt, selbst wenn diese Datei leer ist. Es kann kein URI als Zielcontainer angegeben werden.
Um ein leeres Ecore-Modell zu erstellen, klicken Sie im Editor für Umsetzungskonfiguration und für den Konfigurationsassistenten auf der Hauptseite auf die Schaltfläche Neuen Zielcontainer erstellen, und geben Sie eine Datei an, die die Erweiterung des Zielmodells enthält.
Um eine Modell-zu-Modell-Umsetzung als Front-End zu einer JET-Umsetzung (Modell zu Text) hinzuzufügen, müssen Sie ein Exemplar des JETRule-Frameworks manuell zu den 'postProcessing'-Regeln von 'RootTransformation' hinzufügen, das sich im Umsetzungsprovider befindet. Das folgende Beispiel zeigt den Code, den Sie zu der Bereitstellungsklasse für die Umsetzung hinzufügen müssen. Ersetzen Sie hierbei den Platzhalter 'xxx' durch die ID Ihrer JET-Umsetzung.
/**
* Erstellt eine Root-Umsetzung. Sie können hier weitere Regeln zur Umsetzung hinzufügen.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param transform The root transformation
* @generated NOT
*/
protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
return new RootTransformation(descriptor, new MainTransform()) {
protected void addPostProcessingRules() {
add(new JETRule("xxx"));
}
};
}
Wenn Umsetzungen generiert werden sollen, die als Eingaben oder Ausgaben für UML-Modelle dienen, geben Sie ein UML-Metamodell als Stammeingabe, Stammausgabe oder beides der Zuordnungsspezifikation an. Durch das Hinzufügen eines UML-Profils zur Zuordnungsspezifikation wird nicht automatisch auch das UML-Metamodell hinzugefügt.
Problemumgehung: Fügen Sie das UML-Metamodell hinzu, indem Sie im Zuordnungsassistent und -editor für Modell-zu-Modell-Umsetzungen auf die Schaltfläche 'Modell hinzufügen' klicken.
Manche Endpunkte von Zuordnungsconnectors sind möglicherweise nicht mehr sichtbar, wenn ein Benutzer die Feature-Filterung vom Modus "Basis" entweder in den Modus "Temporär" oder "Erweitert" ändert, dann Zuordnungen erstellt und anschließend wieder in den Filtermodus "Basis" zurück wechselt. Dies kann bewirken, dass Zuordnungs-Connectors erscheinen, die scheinbar Endpunkte ohne Verbindung besitzen. Dies betrifft nur die Darstellung der Zuordnungen. Die Zuordnungen selbst und der Quellcode, den die Umsetzung von den Zuordnungen generiert, sind nicht betroffen.
Problemumgehung: Korrigieren Sie die Darstellung der Zuordnungen, indem Sie wieder in den Filtermodus zurückwechseln, der aktiv war, als die Zuordnungen erstellt wurden.
Wenn eine Zuordnungsdatei keine Zuordnungen mehr enthält, die Elemente aus einem Modell als Zuordnungseingaben oder -ausgaben angeben, dann wird dieses Modell aus der Zuordnungsdatei "gelöscht". Die Überprüfung auf nicht verwendete Modelle wird durchgeführt, sobald eine Zuordnungseingabe oder -ausgabe gelöscht wird. In der Zuordnungsdatei werden für Eingaben und Ausgaben getrennte Listen verwendet.
Problemumgehung: Sie müssen das Modell zu der Zuordnungsdatei hinzufügen, bevor Sie Elemente aus diesem Element als Zuordnungseingaben oder -ausgaben auswählen können. Klicken Sie im Zuordnungseditor auf die Schaltfläche Modell hinzufügen, um das Modell zu der Zuordnungsdatei hinzuzufügen.
Im Umsetzungskonfigurationseditor für Modell-zu-Modell-Umsetzungen kann die Option 'runSilent' für jeden Zusammenführungsmodus einschließlich 'automatisch' und 'visuell' ausgewählt werden. Wenn für den Zusammenführungsmodus 'automatisch' oder 'visuell' angegeben ist, erzwingt die Option 'runSilent' die automatische Mischung (Zusammenführung), wenn für das Zielmodell Fuse-Unterstützung ermittelt wird. Andernfalls wird für die Mischung (Zusammenführung) die Überschreibung verwendet.
Beim Erstellen eines Umsetzungszuordnungsmodells von einem Ecore-Metamodell zu einem UML-Metamodell mit Profilen sollten Sie den Profil-URI prüfen, der später in Ihren Ziel-UML-Modellen verwendet wird. Standardmäßig wird der URI des im Zuordnungseditors angegebenen Profils verwendet. Bei Angabe eines Ressourcen-URI wird dieser in einen funktional entsprechenden Plug-in-URI konvertiert.
Problemumgehung: In der Überschreibungseigenschaft 'profileURI override' auf der Eigenschaftenseite können Sie einen anderen URI angeben. Klicken Sie im Zuordnungseditor auf den Root-Abschnitt- damit die Eigenschaftenseite angezeigt wird. Hinweis: Wenn Sie ein registriertes Profil verwenden, können Sie den URI angeben, mit dem das Profil registriert wurde, sofern es sich hierbei um ein anderes als das automatisch verwendete Profil handelt. Falls Sie dies nicht tun, kann zur Folge haben, dass das registrierte Profil mehrmals in der Ressourcengruppe geladen wird, was Probleme beim Mischen (Zusammenführen) oder Verbinden (Fuse) verursachen kann.
Beim Generieren von Code von Zuordnungsmodellen in Modell-zu-Modell-Umsetzungen werden die Basisprojektdateien wie 'plugin.xml' und 'manifest.mf' generiert, wenn sie nicht gefunden wurden. Möglicherweise müssen Sie diese Dateien nach ihrer Generierung bearbeiten.
Problemumgehung:
- Wenn Sie Eingabe- oder Ausgabemodelle zu der Zuordnungsdatei hinzugefügt haben, müssen Sie die Datei 'manifest.mf' bearbeiten. Fügen Sie die Abhängigkeiten für Plug-ins hinzu, die den generierten Modellcode für das Eingabe-/Ausgabemodell enthalten. Durch Hinzufügen dieser Abhängigkeiten sollten die Kompilierfehler behoben werden können, die durch den Versuch verursacht werden, auf die Klassen in diesem Plug-ins zuzugreifen. Sie können eine Abhängigkeit für das Plug-in hinzufügen, das den generierten Code für das neue Eingabe-/Ausgabemodell enthält.
- Wenn Sie ein Zuordnungsmodell in einem Java-Plug-in generieren, das die Dateien 'plugin.xml' und 'manifest.mf' enthält, müssen Sie die erforderlichen Abhängigkeiten zur Datei 'manifest.mf' hinzufügen. Fügen Sie die Abhängigkeit für die Umsetzungserstellung und die Abhängigkeit für die Eingabe-/Ausgabemodelle hinzu. Außerdem müssen Sie auch die Erweiterung 'com.ibm.xtools.transform.core.transformationProviders' zur Datei 'plugin.xml' hinzufügen.