2

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

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

    extensionPointImplementation.createExecutableExtension(..) 

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

现在问题来了:试图反序列化对象的插件找不到模型扩展的类实现,因为插件之间没有插件依赖关系。尽管如此,我不可能创建这样的依赖关系,这会使在运行时扩展模型的想法过时。

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

谢谢。

4

1 回答 1

1

您需要定义一个所谓的伙伴策略。在试图实例化类的包中添加

Eclipse-BuddyPolicy: registered

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

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

manifest.mf.

于 2012-12-17T14:02:17.357 回答