OSGI之Require-Bundle与Imported-Package
OSGI中的bundle在依赖其他的bundle的时候,有两种方式:Require-Bundle与Imported-Package。这里简单的讲讲他们之间的区别。
先看看基础的定义:
• Required-Bundle: Specify the list of plug-ins required for the operation of this plug-in.
• Imported-Package:Specify packages on which this plug-in depends without explicitly identifying their originating plug-in.
OSGI ClassLoader机制
Many bundles can share a single virtual machine (VM). Within this VM, bundles can hide packages and classes from other bundles, as well as share packages with other bundles.
Bundle共享Java虚拟机,这样的不同的bundle之间才能相互引用package。
The key mechanism to hide and share packages is the Java class loader that loads classes from a sub-set of the bundle-space using well-defined rules. Each bundle has a single class loader.
理解OSGI的Package import-export机制的关键在于明白每个bundle都有自己的Class Loader。
对于OSGI环境来说,它们是没有区别的。无论是Require-Bundle还是Imported-Package,前提都是需要把相关的packages先Export出。先看看OSGI下的ClassImport-Export关系:
区别
它们之间,仅仅只是依赖的颗粒度的区别。Required-Bundle依赖的是bundle,而Import-Package依赖的是package,而不关心是哪一个bundle export出来的。
这个区别,其实可以导致很大的用法差异。比如:
1. 在OSGI环境中有许多不同的版本的bundle的时候,required-bundle可以精确指定版本依赖,而import-package就不行了,它会根据class loader的顺序选择最先找到的class
2. 对于同一个package被许多不同的bundle同时export的时候,可以考虑使用import-package,它避免了对bundle的依赖
- 大小: 28.2 KB
分享到:
相关推荐
osgi开发jar包osgi开发jar包osgi开发jar包osgi开发jar包
压缩包里面有myself工程。里面只有一个类。可以自己创建两个版本的myself的jar包,然后测试osgi解决jar包冲突。
java OSGi学习资料包教程
spring-dm整合osgi所需所有jar包
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
OSGI 实例 eclipse 插件开发
osgi的资料,还算可以,需要的下载下,给个评论
是一本适合新接触OSGI开发学习的一本很好的书,本书介绍了Equinox, Spring-DM和Felix这三个常用的OSGi容器的使用、开发、以及WebApplication的开发部署;介绍了OSGi的规范和Core Framework和Layer。包含书中的用例源...
osgi的jar包,希望能给需要的人提供帮助
Tomcat-Osgi JAR包 Tomcat-Osgi JAR包 Tomcat-Osgi JAR包 Tomcat-Osgi JAR包
OSGI进阶资料、OSGI实战资料,资料格式为pdf,包org.eclipse.equinox.http_1.0.0.v20060601a.jar 和org.eclipse.equinox.servlet.api_1.0.0.v20060601a.jar
bnd, bnd,用于OSGi的瑞士军刀 构建OSGi包的工具 自述文件bnd是针对OSGi的军刀,它基于分析类代码,验证设置,验证你的设置,并对项目的依赖关系进行验证,并提供了相应的日期和时间。关于bnd的信息可以在 ...
BlueDavy的OSGI实战和OSGI进阶两个开源文档,学习OSGI不错的资料
我转载的博客“OSGi环境下建立Web工程的Hello World ”中列出的jar,结合博客“OSGi环境下建立Web工程的Hello World ”开发应用。
spring-osgi.jar及其依赖包
osgi最新jar包org.osgi.core-4.2.0
以 OSGi 包的形式开发和部署 Web 服务
OSGi with CAR-Bundle.ppt
Neo4j OSGi 导入器扫描 OSGi 包的目录并将它们导入数据库,存储包信息及其包导入/导出关系。建造该项目使用和 Spring Boot gradle 插件。 所以就: $ ./gradlew installApp跑步首先,您需要独立运行的 neo4j(我们...
资源名称:OSGI原理与最佳实践内容简介:国内第一本OSGi图书OSGi国内推广者林昊多年经验的结晶涵盖OSGi从入门到深入的知识体系引领OSGi国内研究和普及本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入...