osgi实战学习之路:4.Bundle
</pre></h1><h1 style="margin:0 0 0 40px; border:none; padding:0px"><pre name="code" class="java">源码下载
pan.baidu.com/s/1qWmD39E
Bundle是什么?
一个Bundle能够理解为osgi的一个模块
Bundle是一个标准的jar,仅仅是在META-INF/MANIFEST.MF中增加Bundle元数据的描写叙述
Bundle元数据标识
Bundle-ManifestVersion: 2
Bundle-Name: student-model
Bundle-SymbolicName: com.demo.student-model
Bundle-Version: 0.0.1.SNAPSHOT
Export-Package
导出Bundle的某些包中的代码让其他Bundle訪问,以逗号分隔
Export-Package: org.student.model;version="0.0.1.SNAPSHOT"
Import-Package
导入其他Bundle的包中的代码,以逗号分隔
Import-Package: org.osgi.framework;version="[1.5,2)",org.student.model;v
ersion="[0.0,1)",org.student.management;version="[0.0,1)"
demo中Bundle依赖图
demo中Manifest
student-model:Manifest-Version: 1.0
Bnd-LastModified: 1403962466615
Build-Jdk: 1.6.0_41
Built-By: Administrator
Bundle-ManifestVersion: 2
Bundle-Name: student-model
Bundle-SymbolicName: com.demo.student-model
Bundle-Version: 0.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: org.student.model;version="0.0.1.SNAPSHOT"
Tool: Bnd-2.1.0.20130426-122213
student-management
Manifest-Version: 1.0
Bnd-LastModified: 1403962467467
Build-Jdk: 1.6.0_41
Built-By: Administrator
Bundle-ManifestVersion: 2
Bundle-Name: student-management
Bundle-SymbolicName: com.demo.student-management
Bundle-Version: 0.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: org.student.management;uses:="org.student.model";version
="0.0.1.SNAPSHOT"
Import-Package: org.student.model;version="[0.0,1)"
Tool: Bnd-2.1.0.20130426-122213
student-management-impl
Manifest-Version: 1.0
Bnd-LastModified: 1403962467667
Build-Jdk: 1.6.0_41
Built-By: Administrator
Bundle-Activator: org.student.management.impl.StudentManagementActivator
Bundle-ManifestVersion: 2
Bundle-Name: student-management-impl
Bundle-SymbolicName: com.demo.student-management-impl
Bundle-Version: 0.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Import-Package: org.osgi.framework;version="[1.5,2)",org.student.model;v
ersion="[0.0,1)",org.student.management;version="[0.0,1)"
Tool: Bnd-2.1.0.20130426-122213
student-management-main
Manifest-Version: 1.0
Bnd-LastModified: 1403962467881
Build-Jdk: 1.6.0_41
Built-By: Administrator
Bundle-Activator: org.student.management.main.MainActivator
Bundle-ManifestVersion: 2
Bundle-Name: student-management-main
Bundle-SymbolicName: com.demo.student-management-main
Bundle-Version: 0.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: org.student.management.main;uses:="org.osgi.framework";v
ersion="0.0.1.SNAPSHOT"
Import-Package: org.osgi.framework;version="[1.5,2)",org.student.model;v
ersion="[0.0,1)",org.student.management;version="[0.0,1)"
Tool: Bnd-2.1.0.20130426-122213
部署到karaf:
bundle:install wrap:mvn:com.demo/student-model/0.0.1-SNAPSHOT
bundle:start 80
bundle:install wrap:mvn:com.demo/student-management/0.0.1-SNAPSHOT
bundle:start 81
bundle:install wrap:mvn:com.demo/student-management-impl/0.0.1-SNAPSHOT
bundle:start 82
bundle:install wrap:mvn:com.demo/student-management-main/0.0.1-SNAPSHOT
bundle:start 83
osgi实战学习之路:4.Bundle的更多相关文章
- osgi实战学习之路:5.生命周期及利用命令、装饰者模式实现基于socket交互Bundle命令demo
生命周期中关键3个类: BundleActivator 入口点,类似main方法 BundleContext Bundle上下文对象,在执行期间,为应用程序提供操作osgi框架的方法 Bundle 代 ...
- osgi实战学习之路:3. osgi分层概念及相互合作demo
源码下载 分层: modual: 主要作用于包级管理与共享代码 lifecycle: 主要作用于执行期间的模块管理与訪问osgi底层框架 service: 主要作用于多模块之间的相互通信 demo: ...
- osgi实战学习之路:2. maven+maven-bundle-plugin+karaf搭建osgi之HelloWorld
环境准备: jdk版本号 jdk:1.7 karaf: 版本号:apache-karaf-3.0.1 下载地址: http://pan.baidu.com/s/1qWM4Y1u http://kara ...
- osgi实战学习之路:1. ant+bnd+felix搭建osgi之HelloWorld
开发环境分为三个部份 osgi_provider: bundle开发环境,对外提供服务 osgi_consumer: 引用其他bundle osgi_main: 执行測试 项目主要内容 : commo ...
- osgi实战学习之路:8. Service-3之ServiceTracker
通过ServiceTracker能够对查找的Service进行扩展 以下的demo引入装饰器模式对Service进行日志的扩展 demo: Provider student-manage/Activa ...
- osgi实战学习之路:6. Service-1
什么是Service? 它是注冊到osgi的一个java对象 Service注冊: 通过BundleContext::registerService(java.lang.String[] clazze ...
- Salesforce学习之路(十三)Aura案例实战分析
Aura相关知识整合: Salesforce学习之路(十)Aura组件工作原理 Salesforce学习之路(十一)Aura组件属性<aura:attribute /> Salesforc ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
随机推荐
- php5.3中namespace的说明,帮助初次接触namespace的phper快速理解
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀,但是方法名变的很长 ...
- ECMAScript 6 (浅显入门)
1.let:ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为unde ...
- 关于JavaScript的一些不得不知道的事儿
1.JavaScript不区分整数和浮点数,统一用Number表示. 2.NaN这个特殊的Number与所有其他值都不相等,包括它自己: NaN===NaN; //false 唯一能判断NaN的方法是 ...
- netbeans生成的maven工程没有web.xml文件 如何新建
使用netbeans生成的maven工程没有web.xml 需要自己新建 步骤: 下一步,完成
- wordpress主题之后台菜单编辑,小工具
1一:菜单编辑 在functions.php 文件加入 if (function_exists('register_nav_menus')) { register_nav_menus(array( / ...
- vue学习之组件(component)(二)
自定义事件 父组件使用 prop 传递数据给子组件.但子组件怎么跟父组件通信呢?这个时候 Vue 的自定义事件系统就派得上用场了. 1. 使用 v-on 绑定自定义事件 每个vue实例都实现了事件接口 ...
- 会话技术之cookie(记录当前时间、浏览记录的记录和清除)
cookie 会话技术: 当用户打开浏览器的时候,访问不同的资源,直到用户将浏览器关闭,可以认为这是一次会话. 作用: 因为http协议是一个无状态的协议,它不会记录上一次访问的内容.用户在访问过程中 ...
- 洛谷 P3950 部落冲突 树链剖分
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例1 输出样例1 输入样例2 输出样例2 输入样例3 输出样例3 说明 思路 AC代码 总结 题面 题目链接 P3 ...
- 利用Factory-boy来生成实例数据
库和版本:Faker==2.0.0factory-boy==2.12.0 官方文档:https://factoryboy.readthedocs.io/en/latest/index.html 1. ...
- CNCF 旗下首个为中国开发者量身打造的云原生课程,《CNCF x Alibaba 云原生技术公开课》即将上线
伴随着以 Kubernetes 为代表的云原生技术体系的日益成熟以及 CNCF 生态的逐渐壮大,“云原生”已然成为了未来云计算时代里一个当仁不让的关键词.但是,到底什么是“云原生”?云原生与 CNCF ...