`
Dollyn
  • 浏览: 168598 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

OSGi控制台在Eclipse插件开发中的妙用

阅读更多

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 这个控制台,有和上面同样的功能.

分享到:
评论
2 楼 Vcb 2015-06-08  
http://osgi.jxtech.net 是目前发现最好的企业级OSGi快速开发平台,没有之一。
1 楼 zxjlwt 2015-04-21  
学习了。
http://surenpi.com

相关推荐

    Eclipse 插件开发学习笔记.rar

    Eclipse是一款广泛使用的开源集成开发环境(IDE),其强大的可扩展性主要体现在插件系统上。Eclipse插件开发是开发者提升工作...在实际工作中,不断实践和积累经验,你将成为一名出色的Eclipse插件和RCP应用开发者。

    OSGI进阶插件开发

    1. **插件系统**:利用OSGi创建可扩展的应用程序框架,如Eclipse IDE就是基于OSGi的插件系统。 2. **分布式系统**:在多节点环境中,OSGi的动态性可以帮助构建灵活的微服务架构。 3. **设备管理**:在物联网(IoT)...

    OSGi Modularity - Tutorial

    2. 下载Eclipse插件包:说明了如何下载包含OSGi实现的Eclipse插件包。 3. 更新Eclipse Java IDE:解释了如何更新基于OSGi的Eclipse IDE,以便开发者可以开始使用OSGi模块化功能。 实践教程部分介绍: 1. 创建第一...

    eclipse下构建spring与OSGI项目

    在IT行业中,Eclipse是一款广泛使用的Java开发集成环境,而Spring框架则是企业级应用开发的首选框架之一。OSGi(Open Services Gateway Initiative)则是一种模块化系统和Java应用程序执行环境,它提供了动态模块...

    eclipse log4j 插件

    在Java开发中,日志管理是不可或缺的一部分,Log4j作为一款广泛使用的日志记录框架,为开发者提供了强大的日志处理能力。Eclipse IDE,作为Java开发的主流工具,也支持通过插件的形式集成Log4j,以便在开发过程中更...

    把OSGI部署成一个可运行的例子

    1. 创建Bundle项目:在Eclipse IDE中,使用插件开发工具(PDE)创建一个新的Plug-in Project。配置MANIFEST.MF文件,声明Bundle的元数据,包括Bundle-SymbolicName、Bundle-Version等。 2. 编写代码:在项目中编写...

    OSGi开发环境建立和Hello World

    在Eclipse中运行插件,Equinox会启动并加载这两个项目。运行`HelloWorldClient`,你应该能在控制台看到"Hello, OSGi!"的输出。 以上就是使用Equinox建立OSGi开发环境并实现"Hello World"程序的步骤。通过这个简单的...

    Eclipse从入门到精通

    《Eclipse从入门到精通》是一本全面介绍Eclipse集成开发环境(IDE)的指南,旨在帮助初学者...通过系统学习,你将能够熟练地运用Eclipse进行项目开发,并具备开发Eclipse插件的能力,进一步提升开发效率和代码质量。

    Eclipse 的启动参数

    这些参数在 Eclipse 的启动过程中扮演着重要的角色。 JVM 参数 * `-vmargs`:用于设置 JVM 的参数,例如堆栈大小、垃圾回收器等。 * `-vm`:指定 JVM 的类型,例如 Java HotSpot(TM) 64-Bit Server VM。 Eclipse ...

    jetty插件.rar

    在Eclipse中使用Jetty插件,开发者可以实现以下主要功能: 1. **快速启动和停止Jetty服务器**:通过插件,开发者可以在Eclipse内部启动和停止Jetty服务器,无需离开IDE就能进行实时的Web应用测试,极大地提高了开发...

    学习SpringDM+OSGI的总结

    例如,SpringDM中的`org.springframework.osgi.core`构建所需的JDK版本为1.5,而现代开发环境中通常使用更高版本的JDK。这可能导致项目无法正常编译或运行。 2. **依赖管理**:为了解决版本冲突问题,可能需要调整...

    Getting Started with OSGi_ Part1

    最后,值得一提的是,OSGi技术已经被广泛应用于各种Java应用程序中,特别是在企业应用和Eclipse平台插件开发中扮演了重要角色。掌握OSGi技术,可以帮助开发者构建更加灵活、可扩展的Java应用程序,并且使得维护和...

    eclipse开发rcp4应用示例

    在"eclipse开发rcp4应用示例"中,我们将探讨如何使用Eclipse RCP4构建一个应用程序,同时整合log4j日志系统以及自定义的启动画面(splashscreen)。 首先,了解Eclipse RCP4的基础架构至关重要。它基于OSGi服务,...

    eclipse Java开发

    Eclipse 是一个强大的开源集成开发环境(IDE),尤其在Java开发领域中被广泛使用。它提供了丰富的功能,包括代码编辑、构建自动化、调试、版本控制和单元测试等,极大地提升了开发者的效率。以下是对Eclipse Java...

    eclispe中文操作手册

    Eclipse 是一个强大的集成开发环境(IDE),尤其在Java开发领域广泛应用。它的设计思路超出了传统的编程工具,提供了一个开放的框架,允许开发者通过安装各种插件来扩展其功能,适用于多种编程语言和开发场景。这...

    基于Equinox开发OSGi应用(一)

    由于标签中提到了“源码”和“工具”,在实际开发过程中,我们可能需要使用Eclipse IDE,它内建了对OSGi和Equinox的良好支持。通过插件,我们可以方便地创建、管理、调试OSGi bundles,同时还能查看和编辑运行时的...

Global site tag (gtag.js) - Google Analytics