2012-02-21 76 views
0

我有兩個不同版本的EMF插件,它加載了某個.xmi。後一版本已更改,以便前一版本的xmi不兼容。我想要做的就是加載第一個插件的xmi,然後用較新的插件編程創建一個模型,從而遷移舊模型。它們與EMF模型中的一些變化相同。在Eclipse中使用不同版本加載相同的插件兩次

如何加載這些插件?可能嗎?有更好的策略嗎?

回答

1

我建議改變舊版本的id(也可能是EMF包的URI),這樣你可以同時擁有兩個代碼和模型。

由於您需要在同一個插件(遷移器)中處理舊類和新類,因此您無法同時使用這兩個類。

但是,您應該查看dynamic EMF technology,您可以在其中打開舊模型而不生成它的包(另一方面,您必須使用反射API)。使用這種方法,您可以編寫一個轉換器,使用EMF反射API打開舊模型,然後將其手動轉換爲您的新模型版本。

1

對不起,但這是不可能的,因爲這些插件是單身人士。而且在Java基類受到影響時,您無法在遷移期間切換插件。

一種可能的解決方案是使用EDapt技術。此技術可讓您在加載模型時自動遷移模型。我曾在兩個不同的項目中使用過EDapt的前身 - COPE,取得了巨大的成功。

相關問題