OSGi 系列(三)之 bundle 详解 1. 什么是 bundle bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且 jar 包的物理边界也同时是运行时逻辑模块的封装边界。 2. MANIFEST.MF 规范 ...
OSGi模块化框架是很早就出来的一个插件化框架,最早Eclipse用它而出名,但这些年也没有大热虽然OSGi已经发布了版本 到版本 。现在用的最多的,也是本文讲述基于的是Equinox的OSGi实现,同时也是Eclipse核心,Spring Dynamic Module也是基于Equinox。OSGi框架为java系统提供了一个通用的容器,该系统中的 bundle,无需停止系统,即可实现 bund ...
2014-02-13 17:00 1 7030 推荐指数:
OSGi 系列(三)之 bundle 详解 1. 什么是 bundle bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且 jar 包的物理边界也同时是运行时逻辑模块的封装边界。 2. MANIFEST.MF 规范 ...
Eclipse为开发OSGI Bundle提供了良好的支持,它不仅提供向导来创建OSGi Bundle,而且还提供了内嵌的OSGi框架实现(即Equinox容器),可以使用该容器执行和调试Bundle。从本质上说,每一个Eclipse插件都是一个OSGi Bundle,只不过这个OSGi ...
摘要 OSGi的一个标准就是各个bundle之间是相互隔离的,每个bundle都有自己的classloader,并且不同的版本之间都是相互隔离的,这样就使bundle从物理上进行了隔离,那么OSGi 的bundle之间是怎么进行通信的呢? 下面我们将要介绍3中方法。 Bundles之间通信 ...
数据库。这是我们一定会遇到一个需求,即动态的加载我们自己的文件,而且想维护这个文件存储和加载的位置,并且是 ...
用的是OSGI框架,用到的第三方JAR包需要加载META-INF/XX/XX.xml这个内容,但在运行的时候 ...
在OSGi环境中,在Bundle内部代码中要得到自己Bundle的ClassLoader就很简单,在自己Bundle的代码中,直接写this.getClass().getClassLoader()就得到了自己Bundle的ClassLoader了。但怎么在其他Bundle或外部代码中得到任意一个 ...
很多时候为了封装,需要把一个View单独的做成一个组件,比如做成静态库。如果这个view是自定义的,并且使用了xib,那么在主工程中怎么使用呢?在静态库中,添加bundle,编译的时候并不会把xib编程nib,所以在主工程中加载xib就会报错。 我们工程静态库中自定义了一个 ...
最近在学习osgi,在练习HttpService的过程中,一直出现“A null service reference is not allowed”这样的报错,代码本身没有问题,在网上也搜了不少地方,在《深入理解OSGi》、《osgi原理与最佳实践》这两本书中也没有找到具体的解决方法。万般无奈 ...