`
hzh0725
  • 浏览: 82366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Equinox bundle classloader 分析

    博客分类:
  • java
阅读更多

bundle classloader

默认情况一个bundle的classloader可以load本身bundle包含的class资源,至于manifest.mf中描述的其他bundle中的资源,是通过bundle loader做代理的,通过它来找到相关bundle的classloader,然后再load资源

 

bundle loader 查找class 资源顺序:(适合 eclipse3.3)
1.如果是java系统包,使用parentClassloader
2.如果是osgi代理的包,使用parentClassloader
3.查找import package中的资源
4.查找import bundle的资源
5.查找本身的class 资源
6.查找动态import的资源
7.使用buddy的classloader查找资源
8.使用parentClassloader

代码主要逻辑在org.eclipse.osgi.framework.internal.core.BundleLoader类里面的findClassInternal方法里面

 

bundle parent classloader

主要取决于系统变量 osgi.parentClassloader,主要有app,ext,fwk,boot四个值,默认是boot

  • app 意味着你使用系统的classpath做parentclassloader
  • ext  意味中你使用系统的ext做为parentclassloader
  • fwk 意味着你使用org.eclipse.osgi_*.jar做为parentclassloader
  • boot 意味着你的classloader是 null

 

 

分享到:
评论

相关推荐

    bluedavy的osgi讲义

    类的隔离是通过ClassLoader机制实现的,每个Bundle都有自己的ClassLoader,这样确保了模块间的类加载隔离,防止了命名冲突。 类的加载过程遵循经典的Delegation模型,即从父ClassLoader开始查找,找不到再在当前...

    OSGi理论与实战

    在OSGi环境中,每个Bundle都有自己的ClassLoader,从而确保了模块间的隔离性。当需要加载类时,会遵循经典的委托模型,即先尝试从父ClassLoader加载,若未找到再在当前ClassLoader中查找。 #### Bundle类共享机制 ...

    osgi 实战 pdf

    这一部分深入探讨了OSGi的核心概念和技术细节,包括OSGi规范、ClassLoader的工作原理、Bundle的生命周期、Bundle之间的通讯机制、Declarative Services(DS)中Component的生命周期和通讯机制,以及...

    OSGi实战进阶篇

    - **7.3.1 ClassLoader**:深入探讨OSGi的类加载机制及其特点。 - **7.3.2 Bundle的生命周期**:详细说明Bundle的不同状态及其转换过程。 - **7.3.3 Bundle的通讯机制**:介绍Bundle之间如何进行通信,包括...

    OSGI学习手册及实践

    - **文档结构**:文档分为多个章节,覆盖了从基础到高级的各个方面,包括体验OSGI、OSGI带来的好处、案例分析、框架介绍、基于Equinox的实战等内容。 - **实战内容**: - **做好准备**:介绍了开始OSGI项目之前所...

    OSGI实战

    - **6.7 Equinox基于OSGI的扩展**: 分析了如何利用Equinox提供的API扩展其功能,如添加新的服务或修改现有行为。 - **6.8 现有类型系统基于OSGI的开发** - **6.8.1 B/S**: 如何在浏览器/服务器(B/S)架构中使用OSGI...

    OSGi传说beta1.1.pdf

    - **Bundle上下文**:每个Bundle都有自己的Classloader,这有助于隔离不同Bundle之间的资源。 ##### 1.1.3 声明服务 服务是OSGi的核心组成部分之一,通过服务可以实现模块间的通信和协作。在OSGi中,服务由服务...

    OSGI(实战中文版)

    文档通过各个章节,逐步深入到OSGi的关键部分,例如ClassLoader、Bundle的生命周期和通讯机制、DS(Declarative Services)中Component的生命周期和通讯机制等。 面向接口的开发是OSGi强调的一个重要方面,文档中...

    osgi实战(pdf超请版)

    - **7.3 OSGI关键部分讲解**:深入剖析OSGI中的关键技术点,如类加载器(ClassLoader)、Bundle的生命周期、Bundle间通信机制、声明式服务中的组件生命周期和组件间通信机制等。 #### 八、应用OSGI - **8.1 模块化...

    java调用插件代码.rar

    在OSGi环境中,插件被封装为独立的bundle,可以通过API来启动、停止或与其他bundle交互。 6. **Spring Framework的动态加载**: Spring框架提供了强大的插件支持。例如,使用Spring的`ApplicationContext`,可以...

    高薪面试题 java

    - **类加载机制**:每个bundle有自己的类加载器,通过特定机制加载其他bundle中的类。 #### JVM调优实践 - **调优工具**:如VisualVM、JProfiler等。 - **案例分析**:例如通过监控发现频繁的Full GC导致性能瓶颈,...

Global site tag (gtag.js) - Google Analytics