OSGI之Debug Equinox
来源:互联网 发布:科学计算法 编辑:程序博客网 时间:2024/05/05 21:48
“工欲善其事,必先利其器”,我相信这个信条。理论和实践是两个学习现有知识的方式,对于开源项目,我更喜欢把代码下下来,调试起来,当成手册。
OSGi之旅,从Equinox源代码开始。
从eclipse官方的cvs库获取代码。:pserver:anonymous@dev.eclipse.org:/cvsroot/rt/org.eclipse.equinox/framework framwork是OSGi的core标准R4的实现。下来以后,导入到eclipse。
当然也可以直接通过eclipse 的cvs plugin远程导入项目。
导入项目有四个,如下图:
1. org.eclipse.equinox.executable是放了native的代码,比如win平台下的win32.win32.dll,eclipse.exe,不是我们关注的要点。
2. org.eclipse.equinox.startup 是equinox的lancher,启动的参数处理都有此项目完成。
3. org.eclipse.osgi 是osgi R4 core的implemention部分。是我们真正关注的要点。
4. org.eclispe.osgi.tests是测试部分,编译通过不过没关系,不过可以给我一些参考。
导入到eclipse后,下一步启动equinox的控制台。
1. 找到启动类org.eclipse.core.launcher.Main,如下图,
2. Run As -->Run Configuration
加入 application args:
-console 是启动osgi控制台,在此控制台上就可以进行相关操作。
加入 jvm args:
-Dosgi.install.area=${project_home}/bin
-Dosgi.framework=${project_home}/bin
-Dosgi.frameworkClassPath=file:${project_home}/bin
-Declipse.application.launchDefault=false -Dosgi.hook.configurators=org.eclipse.osgi.internal.baseadaptor.BaseHookConfigurator,
org.eclipse.osgi.internal.baseadaptor.DevClassLoadingHook,
org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook,
org.eclipse.core.runtime.internal.adaptor.EclipseLogHook,
org.eclipse.core.runtime.internal.adaptor.EclipseErrorHandler,
org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook,
org.eclipse.core.runtime.internal.adaptor.EclipseClassLoadingHook,
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter,
org.eclipse.core.runtime.internal.stats.StatsManager,
org.eclipse.osgi.internal.verifier.SignedBundleHook
将org.eclipse.osgi项目下的OSGi_Minimum-1.2.profile和JavaSE-1.6.profile配置文件文件copy到${project_home}/bin下。这里需要说明的是我的jdk是1.6所以选择了JavSE-1.6.profile,请根据相应的jdk版本来选择profile文件。
然后到Main.java,run。成功运行后,出现console,提示符为 "osgi > ",成功了。
在此你可以操作osgi的命令,在提示符下键入"help",就可以看到所有的命令。
键入ss,就可以看到
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.5.0.qualifier
其中,org.eclipse.osgi_3.5.0.qualifier,就是我们的org.eclipse.osgi项目,这个id为0的bundle就是osgi本身?是的,这个是systembundle。
可以通过,install 命令看看是否能成功部署一个bundle。
osgi> install file:e:/helloworld-bundle.jar
Bundle id is 2
查看:
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.5.0.qualifier
2 INSTALLED helloworld_bundle_1.1.0
至此,说明osgi已经可以在eclipse启动debug了。
能调试起来,那么完全可以跟踪osgi的bundle的deploy、undeploy过程,跟踪osgi的classloader机制,跟踪service的发布、卸装过程。
我们在后面再来进行源代码分析。
- OSGI之Debug Equinox
- OSGI之Equinox环境搭建
- Equinox OSGi系列之二 搭建Equinox OSGi核心环境
- Equinox OSGi系列之二 搭建Equinox OSGi核心环境
- Equinox OSGi
- Equinox OSGi系列之三 Equinox配置参数详解
- Equinox OSGi系列之三 Equinox配置参数详解
- OSGi 联系服务调用之Equinox
- Equinox OSGi系列之 创建自己的OSGi应用项目
- Eclipse 、 Equinox 和 OSGi
- equinox的osgi命令
- OSGI Equinox 环境搭建
- osgi equinox helloword
- Equinox 和 OSGI 介绍
- OSGi#1:Equinox 初探
- OSGI EQUINOX 参数配置
- 使用equinox开发osgi
- Equinox OSGi系列之一 Equinox入门
- ufun视频教程05
- POI Excel用法小结
- 我行我素的阿萌
- 区域标记算法
- 你会使用Linux下的man命令吗?
- OSGI之Debug Equinox
- 周星驰的李小龙情结
- svn更新(安装)
- linq应用:dropdownlist 递归 动态 树
- Gdiplus 读取并显示 Gif
- 用游戏点亮你的工作简历
- winform 制作安装包 详细步骤
- kruskal
- 工作