2012-02-21 10 views
0

特定の.xmiをロードするEMFプラグインの2つの異なるバージョンがあります。後者のバージョンは、以前のバージョンのxmiが互換性がないように変更されました。私がしたいのは、最初のプラグインでxmiをロードしてから、新しいプラグインを使用してプログラマチックにモデルを構築し、古いモデルを移行することです。それらは、EMFモデル内のいくつかの変更点を除いて同一です。同じプラグインを別のバージョンのEclipseで2回ロードする

これらのプラグインはどのように読み込みますか?出来ますか?より良い戦略はありますか?

答えて

1

古いバージョン(および場合によってはEMFパッケージURI)のIDを変更することをお勧めします.2つのコードとモデルを同時に使用することができます。

古いプラグインと新しいクラスの両方を同じプラグイン(マイグレータ)で処理する必要があるため、両方を動作させることはできません。

ただし、生成されたパッケージを使用せずに古いモデルを開くことができるdynamic EMF technologyを見てください(一方で、反射APIを使用する必要があります)。このメソッドを使用すると、EMFリフレクションAPIを使用して古いモデルを開き、手動で新しいモデルバージョンに変換するコンバータを作成できます。

1

申し訳ありませんが、これらのプラグインはシングルトンのため不可能です。 Javaベースのクラスが得られるように、移行中にプラグインを切り替えることはできません。

可能な解決策の1つは、EDapt技術を使用することです。このテクノロジにより、モデルを読み込む際にモデルを自動的に移行できます。私はEDPEの前身であるCOPEを2つの異なるプロジェクトで使用して成功しました。

関連する問題