我目前在RCP应用程序中遇到问题,想问一下,如果有人偶然发现了同样的问题,可以给我一些有价值的提示:
我的RCP应用程序允许插件提供我的模型的特定抽象类(单例)的实现,以通过更新管理器在运行时扩展我的模型。我通过
实例化这些类 extensionPointImplementation.createExecutableExtension(..)
解析Eclipse注册表之后。我可以使用默认的Java序列化API序列化创建的实例。
现在问题:由于插件之间没有插件依赖性这一事实,试图反序列化对象的插件无法找到模型扩展的类实现。然而,我不可能创建这样的依赖关系,这会使运行时期间扩展模型的想法过时。
是否可以通过使用默认的Java序列化API解决此问题,或者我是否必须实现自己的序列化(如果所有必需的插件都可用,它会解析Eclipse注册表并通过上面显示的行创建实例,否则抛出一个例外)可能基于默认的Java序列化API(如果可能的话,我不想完全自己创建序列化)?
感谢。
答案 0 :(得分:1)
您需要定义所谓的好友政策。 在试图实例化类add的包中添加
Eclipse-BuddyPolicy: registered
到manifest.mf
。
在提供类添加的包中
Eclipse-RegisterBuddy: <symbolic name of the bundle instantiating the class>
到manifest.mf
。