BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #13469同步于 2010/3/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[求助]关于OSGi

wks
2010/3/12镜像同步5 回复
所有的组件都是bundle,而且都是对等的关系是吗?都是由framework统一启动统一调度? 如果我有一个主程序,允许用户添加插件,那么“主程序”本身也是一个bundle吗? eclipse的主程序呢?它有eclipse(.exe)的。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
fireflyk机器人#1 · 2010/3/12
【 在 wks 的大作中提到: 】 : 所有的组件都是bundle,而且都是对等的关系是吗?都是由framework统一启动统一调度? : 如果我有一个主程序,允许用户添加插件,那么“主程序”本身也是一个bundle吗? : eclipse的主程序呢?它有eclipse(.exe)的。 : ................... 我理解,你所谓的“主程序”也是一个bundle的 其实就是依赖来、依赖去,但应该不能循环依赖吧
wks机器人#2 · 2010/3/12
“主程序”是应用中的地位关系。比如一个文本编辑器,编辑器本身就是“主程序”,一些增加编辑功能的插件就叫“插件”。 目前我看到的例子基本上都是命令行用java -jar org.eclipse.osgi.xxxx.xxxx.jar,用一个配置文件配置初始引入的一系列bundle(当然,如果把主程序做一个bundle引入,功能上也可以实现)。如果让osgi framework被“主程序”拥有,且这个framework的生命周期受“主程序”控制,而且程序的入口(public static void main)在主程序里,有没有办法?(是不是即使这样,主程序也要注册到framework里做一个“平民化”的bundle?) 【 在 fireflyk 的大作中提到: 】 : 我理解,你所谓的“主程序”也是一个bundle的 : 其实就是依赖来、依赖去,但应该不能循环依赖吧
lazytiger机器人#3 · 2010/3/13
【 在 wks 的大作中提到: 】 : “主程序”是应用中的地位关系。比如一个文本编辑器,编辑器本身就是“主程序”,一些增加编辑功能的插件就叫“插件”。 : 目前我看到的例子基本上都是命令行用java -jar org.eclipse.osgi.xxxx.xxxx.jar,用一个配置文件配置初始引入的一系列bundle(当然,如果把主程序做一个bundle引入,功能上也可以实现)。如果让osgi framework被“主程序”拥有,且这个framework的生命周期受“主程序”控制,而且程序的入口(public static void main)在主程序里,有没有办法?(是不是即使这样,主程序也要注册到framework里做一个“平民化”的bundle?) 你所谓的“生命周期”都是由framework来完成的,如果需要接管framework的工作,那说明一个问题,你根本不需要这个framework,找另外一条路就好了。framework的意义在于,它可以帮助你完成一些你不需要关心的东西,比如各个包的生命周期。而osgi框架的特色之处就在于,除了基本的osgi核心库以外,所有的东西都是平面化的,松耦合的。只要核心不挂,即使其中任何bundle挂了也没有太大关系,类似于操作系统!
fireflyk机器人#4 · 2010/3/13
【 在 wks 的大作中提到: 】 : “主程序”是应用中的地位关系。比如一个文本编辑器,编辑器本身就是“主程序”,一些增加编辑功能的插件就叫“插件”。 : 目前我看到的例子基本上都是命令行用java -jar org.eclipse.osgi.xxxx.xxxx.jar,用一个配置文件配置初始引入的一系列bundle(当然,如果把主程序做一个bundle引入,功能上也可以实现)。如果让osgi framework被“主程序”拥有,且这个framework的生命周期受“主程序”控制,而且程序的入口(public static void main)在主程序里,有没有办法?(是不是即使这样,主程序也要注册到framework里做一个“平民化”的bundle?) 你所谓的主程序就是传统意义上的包含main函数的那个类吧 osgi启动都应该通过配置文件吧 所以实际上主程序还是那个配置文件,每一个就是一个bundle 如果那个bundle的包里刚好有一个所谓的“主程序”,这个整体也仍是bundle 这个主程序也只是其中的小小的一个类 个人理解~
fireflyk机器人#5 · 2010/3/13
【 在 lazytiger 的大作中提到: 】 : : 你所谓的“生命周期”都是由framework来完成的,如果需要接管framework的工作,那说明一个问题,你根本不需要这个framework,找另外一条路就好了。framework的意义在于,它可以帮助你完成一些你不需要关心的东西,比如各个包的生命周期。而osgi框架的特色之处就在于,除了基本的osgi核心库以外,所有的东西都是平面化的,松耦合的。只要核心不挂,即使其中任何bundle挂了也没有太大关系,类似于操作系统! 比喻的好厉害啊,学习学习~