OSGi的实现本身有一个控制台,提供插件的查看和管理功能。而Eclipse是基于OSGi的平台应用,这样我们可以使用这个控制台辅助进行插件的管理,调试等工作…
一、管理和诊断
从事插件开发的各位同行也许都遇到过这样的问题:某个插件在发布以后无法启动,在Eclipse的插件列表中也看不到。这种情况一般是插件打包的时候出错,或者插件的依赖项不能满足。 如果项目的插件本身就比较多,或者依赖项比较多,这种问题查起来就非常痛苦。(Eclipse的插件列表会自动忽略某些无法启动的插件,无法通过Eclipse本身的插件列表排查问题)
而OSGi的控制台,允许你通过命令行的方式,对插件进行安装,卸载,启动,更新等操作,通过这样的方式进行排查。
例如,我们创建两个插件,example.TestA和example.TestB,插件B依赖插件A。然后只把插件B放到Eclipse的dropins目录下,这样我们是看不到example.TestB这个插件的,也无法使用它提供的功能。
此时,我们在启动eclipse的时候增加一个参数”- console”,就会同时启动一个控制台窗口,输入ss命令,会看到所有的bundle的信息列表:
还可以在命令后面增加参数过滤:
有的时候,这里也看不到插件,还可以使用install命令安装。
使用diag命令,可以对某个插件进行诊断:
二、在调试中应用
在插件开发过程中,我们调试插件,一般情况下,只要不是对类的结构进行改变,都可以在DEBUG模式下,进行代码的热替换,即debug模式修改代码,无需重启,即可看到最新的效果。 但是,一般情况下,对于plugin.xml等文件进行的修改,则必须重新启动debug才可以看到修改的效果。
而使用OSGi的update命令,就可以省去这个麻烦。
首先,在调试启动的时候,需要增加-console参数:
这样在启动后,就可以在eclipse的控制台输入OSGi的命令了:
我们的插件B,在提供了一个菜单:
这个菜单的Label是配置在plugin.xml里的,我们修改一下这个值,然后在控制台输入下面的命令:
也可以输入update <id>,id就是你的插件bundle的id,这里就是760。
可以看到无需重新启动,菜单项已经改变:
2011-09-28 补充: 也可以不添加参数,Eclipse自带了一个OSGi的控制台,可以在Debug起来的那个Run-time的Eclipse中,打开Console视图,切换到Host OSGi 这个控制台,有和上面同样的功能.
分享到:
相关推荐
OSGI 实例 eclipse 插件开发
火龙果软件工程技术中心 本文内容包括:创建OSGi包HelloOSGi控制台扩展控制台结束语下载参考资料了解非常优秀的OSGi(Equinox)控制台,以及如何将其添加到Eclipse开发人员的工具箱中,并了解如何扩展控制台以进一步...
1.1.1 安装及使用Eclipse IDE 1.1.2 为Eclipse IDE安装中文语言包 1.1.3 IDE的环境设置 1.1.4 使用帮助系统 1.2 什么是Eclipse 1.3 SWT/JFace技术 1.4 插件技术和OSGi 1.5 RCP技术 1.6 EMF技术 1.7 GEF技术 1.8 本章...
介绍了eclipse插件开发基本理论、插件项目结构及开发步骤,最后再给出两个插件开发实例。结构如下: 1.介绍eclipse内核结构、扩展点机制; 2.介绍SWT的原理,控件设计及事件响应机制 3.介绍OSGi 4.介绍RCP(Rich ...
osgi自定义控制台命令一章中对应的bundle
osgi插件化开发流程
这个是eclipse OSGI 实战,里面介绍了很多osgi的知识,还有一个进行osgi编程的例子,发出来给大家共享一下,希望有帮助
1.一篇實例教程,配图分部讲解 2.SpringDM实例实现OSGI源码 3.纯OSGI实现源码
解答如何基于OSGi怎么来设计/实现/部署/测试项目和产品
OSGI技术教程 Eclipse公司从OSGi技术中看到未来
Eclipse 3.0采用OSGI作为其插件体系结构
1.SWT/Jface技术 2.插件与OSGi 3.RCP技术 3.EMF技术 4.GEF技术 5.Eclipse开发示例 6.VE插件的使用
OSGi_with_Eclipse_Equinox_-_Tutorial
以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP软件,并解决软件开发过程中遇到的故障;实战篇(第13-15章)详细讲解了Eclipse RCP与Spring OSGi框架、...
想多前沿技术了解的朋友,一定要看哦.
org.eclipse.osgi_3.7.0.v20110613以及源码 。
OSGi开发文档和实践指南,描述了OSGI的开发流程
开放工厂向您提供了规范化的OSGi.NET插件框架和可复用的插件仓库,通过插件仓库来解决应用系统的持续集成、远程管理、自动更新、敏捷发布,无缝实现开发/QA/运维间无缝协作,并允许您将自定义的插件共享。 插件仓库...