快速业务通道

利用OSGi解决Eclipse插件难题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
nym="broker"/>   </extension> </plugin>

客户可以考虑创建一个接受以下参数的包装工厂类,如扩展点 ID、扩展 ID、元素名称(本例中是同 义词)、实际属性和资源包 ID。该包装类将参数格式化为类似上面代码的 XML 字符串。然后将此 XML 字符串读入将被传入到 IExtensionRegistry 接口的 addContribution() 方法的 ByteArrayInputStream 中。只有此方法的其他必需参数是用户标记和资源包 ID。值得注意的一点是,资源包 ID 应是做出该贡 献的资源包的 ID,不是在其中定义扩展点的资源包的 ID。

警告和提示

在 M5(于 2006 年 2 月 17 日构建的 Eclipse)中引入的一个特性是,对 addContributions() 的 调用是异步调用。这意味着该扩展不可立即使用,因为 Eclipse 启动了一项执行实际注册的作业。简单 地说,您必须开始自己的作业并与之同步,以获得任何类型的同步行为。

为了使此项任务更容易,下面给出了三条提示:

创建一项将其本身注册为一个 RegistryChangeListener 的新作业。

该作业运行时,确保您的作业代码侦听 RegistryListener 回调的 isRegistered 集合。

一旦所有注册完成,即退出您的作业。

当然,现在我们必须将调用代码与生成的作业结合起来,以获得同步调用。这只有在代码要求立即使 用扩展时才得到保证。希望您的代码设计为惰性,这样初始化就变得不重要。

结束语

动态扩展的使用可以通过编程方式创建。通过使用 OSGi 框架侦听服务何时可用(加载或卸载),动 态扩展增强了退耦功能。一起使用这些技术将允许声明性的贡献和组件之间 100% 退耦。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号