Question

J'ai deux versions différentes d'un plugin EMF qui charge un certain .xmi. Cette dernière version a été modifiée de sorte que le XMI de la version précédente est incompatible. Ce que je veux faire, c'est de charger les XMI avec le premier plugin, puis de créer un modèle programmatique à l'aide du plugin plus récent, migrant ainsi des modèles plus anciens. Ils sont identiques en dehors de certains changements dans un modèle EMF.

Comment charger ces plugins? Est-il possible? Y a-t-il de meilleures stratégies?

Était-ce utile?

La solution

Je suggère de modifier l'ID de l'ancienne version (et peut-être le package EMF URI), afin que vous puissiez avoir les deux code et les modèles simultanément.

Comme vous devez gérer les classes anciennes et nouvelles dans le même plug-in (le migratrice), il n'y a aucun moyen que vous puissiez travailler les deux.

Cependant, vous regardez le Technologie Dynamic EMF où vous pouvez ouvrir l'ancien modèle sans ses packages générés (en revanche, vous devez utiliser l'API réfléchissant). En utilisant cette méthode, vous pouvez écrire un convertisseur, qui ouvre l'ancien modèle à l'aide de l'API réfléchissante EMF et le traduire manuellement dans votre nouvelle version de modèle.

Autres conseils

Désolé, mais ce n'est pas possible car ces plug-ins sont des singletons. Et vous ne pouvez pas changer les plug-ins pendant les migrations au fur et à mesure que les classes de base Java vous gênent.

Une solution possible consiste à utiliser le Edapt La technologie. Cette technologie vous permet de migrer automatiquement votre modèle lorsque vous le chargez. J'ai utilisé Cope - le prédécesseur d'Edapt - dans deux projets différents avec un grand succès.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top