【问题标题】:Loading same plugin twice with different version in Eclipse在 Eclipse 中使用不同版本两次加载相同的插件
【发布时间】:2012-02-21 19:29:50
【问题描述】:

我有两个不同版本的 EMF 插件,可以加载某个 .xmi。后一个版本已更改,因此与前一个版本的 xmi 不兼容。我想要做的是使用第一个插件加载 xmi,然后使用新插件以编程方式构建模型,从而迁移旧模型。除了 EMF 模型中的一些变化之外,它们是相同的。

如何加载这些插件?是否可以?有更好的策略吗?

【问题讨论】:

    标签: java eclipse osgi eclipse-emf mde


    【解决方案1】:

    我建议更改旧版本的 id(可能还有 EMF 包 URI),这样您就可以同时拥有两个代码和模型。

    由于您需要在同一个插件(迁移器)中同时处理旧类和新类,因此您无法同时工作。

    但是,您应该查看dynamic EMF technology,您可以在其中打开没有生成包的旧模型(另一方面,您必须使用反射 API)。使用这种方法,您可以编写一个转换器,使用 EMF 反射 API 打开旧模型,然后手动将其转换为您的新模型版本。

    【讨论】:

      【解决方案2】:

      抱歉,这是不可能的,因为这些插件是单例的。而且在迁移过程中您无法切换插件,因为 Java 基类会妨碍您。

      一种可能的解决方案是使用EDapt 技术。该技术允许您在加载模型时自动迁移模型。我在两个不同的项目中使用了 COPE(EDapt 的前身)并取得了巨大成功。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多