保存并加载之前通过Eclipse注册表创建的对象的实例

时间:2012-12-09 04:48:18

标签: serialization eclipse-rcp

我目前在RCP应用程序中遇到问题,想问一下,如果有人偶然发现了同样的问题,可以给我一些有价值的提示:

我的RCP应用程序允许插件提供我的模型的特定抽象类(单例)的实现,以通过更新管理器在运行时扩展我的模型。我通过

实例化这些类
    extensionPointImplementation.createExecutableExtension(..) 

解析Eclipse注册表之后。我可以使用默认的Java序列化API序列化创建的实例。

现在问题:由于插件之间没有插件依赖性这一事实,试图反序列化对象的插件无法找到模型扩展的类实现。然而,我不可能创建这样的依赖关系,这会使运行时期间扩展模型的想法过时。

是否可以通过使用默认的Java序列化API解决此问题,或者我是否必须实现自己的序列化(如果所有必需的插件都可用,它会解析Eclipse注册表并通过上面显示的行创建实例,否则抛出一个例外)可能基于默认的Java序列化API(如果可能的话,我不想完全自己创建序列化)?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要定义所谓的好友政策。 在试图实例化类add的包中添加

Eclipse-BuddyPolicy: registered

manifest.mf。 在提供类添加的包中

Eclipse-RegisterBuddy: <symbolic name of the bundle instantiating the class>

manifest.mf