发明名称 |
OSGi中应用资源加载委派反转机制的模块间资源加载方法 |
摘要 |
本发明涉及OSGi中应用资源加载委派反转机制的模块间资源加载方法,当移植到OSGi框架中的类库模块需要使用线程上下文类加载器加载位于应用模块中的资源时,在同步机制下,先获取当前线程运行堆栈中的类,并由类获取它们的类加载器,对取得的类加载器,只保留模块类加载器,并且重复的模块类加载器仅保留一个,然后根据预设的标志来确定资源所在的模块,最后将加载请求委派给资源所在模块的类加载器,由此,本发明解决了一些涉及应用运行上下文的类库移植到OSGi中不能正确加载资源的问题。 |
申请公布号 |
CN103365690A |
申请公布日期 |
2013.10.23 |
申请号 |
CN201310291411.6 |
申请日期 |
2013.07.11 |
申请人 |
南京大学 |
发明人 |
曹春;马晓星;吕建 |
分类号 |
G06F9/445(2006.01)I |
主分类号 |
G06F9/445(2006.01)I |
代理机构 |
南京知识律师事务所 32207 |
代理人 |
张苏沛 |
主权项 |
一种OSGi中应用资源加载委派反转机制的模块间资源加载方法,其特征在于:让资源需求模块根据标识来选择是否使用本方法,需要一个支持OSGi资源加载委派反转机制流程的类加载器并将该类加载器设置为当前线程上下文类加载器,而原线程上下文类加载器设置为该类加载器的父类加载器,其中的资源加载委派反转机制流程是先取资源同步锁;然后检测是否使用安全管理器,根据安全管理器的使用与否决定是否使用特权模式来保证执行取出当前线程运行堆栈的操作;在取到当前线程运行堆栈后,获取其中每个类的类加载器,并滤除非OSGi模块的类加载器,而重复的类加载器仅保留一个;接着查看与这些类加载器对应的模块是否含有资源标识,其中具有资源标识的放入目标队列;将资源加载请求委派给目标队列中的模块的类加载器完成;若加载仍不成功,再用父类加载器加载;最后释放资源锁。 |
地址 |
210023 江苏省南京市栖霞区仙林大道163号 |