OSGi之Bundle】的更多相关文章

OSGi提出的根源是什么?在我看来就是对JVM的类加载机制进行了扩展,添加了一系列的规则,使得原有的类包(Class Package)扩展到类域(Class Domain).然后是建立在类域上的一系列松耦合应用. 在OSGi R4中,核心部分分为了4层:安全层(Security Layer).模块层(Module Layer).生命周期层(Life Cycle Layer)和服务层(Service Layer).其中模块层是整个OSGi概念的核心部分.OSGi的核心实现即为OSGi框架,它本身也…
Eclipse 4.2 OSGI 依赖的Bundle: org.eclipse.osgiorg.apache.felix.gogo.runtimeorg.apache.felix.gogo.commandorg.eclipse.equinox.consoleorg.eclipse.equinox.http.jettyorg.apache.felix.gogo.shelljavax.servletorg.eclipse.jetty.serverorg.eclipse.osgi.servicesor…
OSGi模块化框架是很早就出来的一个插件化框架,最早Eclipse用它而出名,但这些年也没有大热虽然OSGi已经发布了版本1到版本5.现在用的最多的,也是本文讲述基于的是Equinox的OSGi实现,同时也是Eclipse核心,Spring Dynamic Module也是基于Equinox.OSGi框架为java系统提供了一个通用的容器,该系统中的 bundle,无需停止系统,即可实现 bundle 的安装.卸载.OSGi是Java中目前唯一的一个模块化.动态化的规范.在模块化方面OSGi联盟…
OSGi 系列(三)之 bundle 详解 1. 什么是 bundle bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且 jar 包的物理边界也同时是运行时逻辑模块的封装边界. 2. MANIFEST.MF 规范 位置:META-NF/MANIFEST.MF 文件格式 属性声明的一般格式是 name: value 一行不超过 72 个字符,下一行则由单个空格字符开始 3. bundle 常用标识符 标识符 说明 Bundle-…
开发一个简单的Hello World的OSGi Bundle(OSGi绑定包) 在OSGi中,软件是以Bundle的形式发布的.一个Bundle由Java类和其它资源构成,它可为其它的Bundle提供服务,也可以导入其它Bundle中的Java包:同时,OSGi的Bundle也可以为其所在的设备提供一些功能.Eclipse为开发OSGiBundle提供了优秀的支持,它不仅提供了向导来创建OSGi Bundle,而且还提供了内嵌的Equinox容器,您可以使用该容器执行和调试OSGi插件.请注意每…
一.OSGi的核心组件Bundle,与java中jar包的差别就是元数据配置:      常用的Bundle元数据定义:     a) Bundle-Activator:定义Activator的实现全限定类名称,此类必须实现BundleActivator接口,并实现start和stop方法.当Bundle被OSGi容器启动或停止时就会去调用start和stop方法.Bundle-Activator并非是必须的,只有在需要初始化或是销毁资源时才有用,并且不推荐在start方法中进行复杂的处理,以免…
OSGi 的由来 随着科技和需求的发展和变化,现在的软件变得越来越庞大.这样,随之而来的最大挑战就是软件在设计上的越来越复杂和维护上的越来越困难.为了解决这个问题,软件架构师将软件切分成比较小的并且易于理解的多个模块.那么软件模块化会给我们带来什么样的好处呢? 拆分人力:将软件模块化后,我们就可以分配独立的团队去处理独立的模块,从而将人力拆分开来.这样既便于管理,又会降低整个软件的设计的复杂性.因为每个独立的团队可以专心去设计和实现其模块,而不用通盘考虑整个软件的复杂性. 抽象化:将软件模块化后…
上一篇说了很多虚的东西,现在说点别的. OSGi系统的独立环境下的项目结构以及启动脚本. 先说项目结构,基于equinox的OSGi容器的项目结构如下所示: bin中定义启动脚本,停止脚本之类的. configuration定义配置文件,比如:config.ini,log4j.properties等配置文件. environment包含了一些基础bundle,比如:spring系列:log4j等. platform是基于OSGi上的,做二次开发的bundle. 这里面比较麻烦的就是,osgi这个…
原文地址:https://liugang594.iteye.com/blog/1328050 简单介绍一下如何在一个osgi的bundle中内嵌使用http服务 一.基础 首先看看在OSGI中怎么启动内嵌的jetty容器.看下图: 其实简单的只选中"org.eclipse.osgi"和"org.eclipse.equinox.http.jetty",然后点击"Add Required Bundles"即可. 默认的Jetty监听的端口为80,可又…
内容来源:https://www.ibm.com/developerworks/cn/java/j-springboot-application-integrated-osgi-framework-development/index.html Springboot Application 集成 OSGI 框架开发 张 莹莹2018 年 4 月 02 日发布 WeiboGoogle+用电子邮件发送本页面 0 Java 类加载器 启动类加载器 (Bootstrap ClassLoader) 是 Ja…