App 下载
注册
登录
|
搜索
正在搜索中...
首页
我的书架
我的主页
我的收藏
我的书评
《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关的示例清楚地讲解OSGi概念,同时探讨了很多实践场景和技术,阐述了开发人员有多需要OSGi,怎么将OS
……
[ 展开全部 ]
Gi嵌入其他容器中,将遗留系统移入OSGi的最佳实践,等等。 《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法,还介绍了某些技术的低层实现细节,引领读者畅游OSGi的世界。
[ 收起 ]
作者:Richard S. Hall Karl Pauls Stuart McCulloch David Savage
出版社:人民邮电出版社
定价:99.00元
ISBN:7115300674
给个评价
做个书摘
书摘 (21 )
评价 (1 )
查看所有书摘
按目录显示书摘
只显示目录
目 录
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第一部分 OSGi:模块化、生命周期和服务
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第1章 揭开OSGi的面纱 2
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.1 OSGi的定义和目标 3
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.1.1 Java模块化的不足 3
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.1.2 OSGi能帮助你吗 6
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.2 OSGi架构概览 6
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.2.1 OSGi框架 7
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.2.2 将它们结合起来 10
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.3 Hello, world! 10
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.3.1 模块层示例 10
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.3.2 生命周期层示例 12
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.3.3 服务层示例 13
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.3.4 场景设置 15
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4 OSGi的相关技术 16
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.1 Java EE 16
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.2 Jini 17
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.3 NetBeans 17
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.4 JMX 17
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.5 轻量级容器 18
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.6 Java 业务集成 18
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.7 JSR 277 19
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.8 JSR 294 19
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.9 SCA 19
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.4.10 .NET 20
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
1.5 小结 20
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第2章 精通模块化 21
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.1 什么是模块化 21
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.2 为什么使用模块化 24
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.3 模块化绘图程序 24
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.4 bundle 27
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.4.1 bundle在物理模块化中扮演的角色 28
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.4.2 bundle在逻辑模块化中扮演的角色 29
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.5 使用元数据定义bundle 30
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.5.1 可读信息 31
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.5.2 bundle标识 32
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.5.3 代码可见性 34
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.5.4 类搜索顺序 42
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.6 完成绘图程序设计 43
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.6.1 提高绘图程序的模块化 44
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.6.2 启动新的绘图程序 46
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.7 OSGi依赖解析 46
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.7.1 自动解析依赖 47
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.7.2 使用约束保证一致性 51
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.8 回顾模块化绘图程序的好处 56
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
2.9 小结 59
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第3章 生命周期 60
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.1 生命周期管理 60
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.1.1 什么是生命周期管理 61
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.1.2 为什么需要生命周期管理 62
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2 OSGi bundle的生命周期 63
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.1 将生命周期引入绘图程序 63
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.2 OSGi框架在生命周期中的作用 65
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.3 bundles激活器的清单文件条目 66
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.4 生命周期API 67
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.5 生命周期状态图 72
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.2.6 bundle缓存和框架重启 73
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3 在bundle中使用生命周期API 74
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.1 配置bundle 75
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.2 部署bundle 76
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.3 检查框架状态 81
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.4 持久化bundle状态 82
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.5 事件监听 85
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.3.6 bundle自我销毁 87
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.4 动态扩展绘图程序 89
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.5 生命周期与模块化 96
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.5.1 解析bundle 96
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.5.2 刷新bundle 98
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.5.3 当更新操作没有完成更新 101
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
3.6 小结 103
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第4章 学习服务 104
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1 什么是服务、为什么使用服务、什么时候用服务 104
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1.1 什么是服务 104
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1.2 为什么使用服务 106
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1.3 什么时候应该使用服务 109
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1.4 什么时候不应该使用服务 110
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.1.5 仍然不确定 110
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.2 OSGi服务实战 111
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.2.1 发布服务 112
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.2.2 查找并绑定服务 114
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.3 处理动态性 117
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.3.1 避免常见的陷阱 118
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.3.2 监听服务 121
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.3.3 服务跟踪 126
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.4 在绘图示例中使用服务 129
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.4.1 定义图形服务 129
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.4.2 发布图形服务 129
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.4.3 跟踪图形服务 130
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5 将服务关联到模块层和生命周期层 131
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5.1 为什么不能看到我的服务 131
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5.2 能否提供一个bundle特有的服务 132
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5.3 应该在何时释放服务 133
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5.4 何时注销服务 133
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.5.5 应该将接口分开打包吗 133
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.6 标准服务 134
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.6.1 核心服务 134
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.6.2 compendium服务 135
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
4.7 小结 136
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第5章 深入分析模块化特性 138
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1 管理导出 138
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1.1 导入导出包 139
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1.2 隐式导出属性 142
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1.3 强制导出属性 143
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1.4 导出过滤 145
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.1.5 复制导出 146
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.2 导入解耦 147
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.2.1 可选导入 147
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.2.2 动态导入 148
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.2.3 可选导入与动态导入的比较 149
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.2.4 日志示例 150
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.3 需要的bundle 153
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.3.1 声明bundle依赖关系 154
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.3.2 聚合分割包 155
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.3.3 bundle依赖的相关问题 158
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.4 将bundle划分为片段 158
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.4.1 片段 159
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.4.2 本地化中使用片段 161
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.5 处理与环境相关的问题 164
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.5.1 依赖执行环境 165
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.5.2 构建本地库 166
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
5.6 小结 168
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第二部分 OSGi实践
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第6章 走近bundle 170
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1 将JAR转换成bundle 170
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.1 选取bundle标识 171
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.2 导出包 173
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.3 发现需要导入的包 177
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.4 嵌入与导入 181
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.5 增加对生命周期的支持 181
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.1.6 JAR文件转换为bundle的简要说明 183
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.2 分割一个应用到多个bundle 184
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.2.1 创建一个大型bundle 184
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.2.2 将代码拆分到多个bundle中 193
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.2.3 降低模块耦合 197
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.2.4 是否要转换成bundle 201
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
6.3 小结 204
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第7章 测试应用程序 206
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.1 迁移测试到OSGi 206
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.1.1 容器内测试 207
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.1.2 创建测试bundle 208
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.1.3 覆盖所有基础 210
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2 模拟OSGi 212
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2.1 测试期望的行为 213
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2.2 模拟实战 214
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2.3 模拟意外情景 215
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2.4 处理多线程测试 216
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.2.5 暴露竞态条件 218
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3 OSGi高级测试 219
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3.1 OSGi测试工具 220
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3.2 在多个框架中运行测试 221
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3.3 单元测试 225
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3.4 集成测试 226
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.3.5 管理测试 228
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
7.4 小结 230
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第8章 调试应用 232
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.1 调试bundle 232
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.1.1 调试实战 234
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.1.2 使用HotSwap解决问题 239
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2 解决类加载相关问题 243
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2.1 ClassNotFoundException与NoClassDefFoundError
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2.2 类型转换问题 246
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2.3 使用uses约束 247
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2.4 同Class.forName()划清界限 249
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.2.5 线程上下文类加载器 252
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.3 追踪内存泄漏 254
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.4 悬挂服务 258
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.4.1 查找悬挂服务 259
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.4.2 防止悬挂服务 259
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
8.5 小结 261
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第9章 管理bundle 262
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.1 包和bundle的版本控制 262
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.1.1 有效的版本控制 263
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.1.2 包的版本控制 264
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.1.3 bundle的版本控制 266
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.2 配置bundle 267
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.2.1 配置管理服务 268
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.2.2 元类型服务 276
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.2.3 首选项服务 279
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.3 延迟启动bundle 281
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.3.1 激活策略 281
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.3.2 使用激活策略 283
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
9.4 小结 284
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第10章 管理应用 285
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.1 部署bundle 285
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.1.1 管理代理 285
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.1.2 OSGi bundle仓库 287
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.1.3 部署管理服务 294
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.2 指定bundle激活顺序 301
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.2.1 介绍启动级别服务 302
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.2.2 使用启动级别服务 303
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
10.3 小结 306
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第三部分 高级主题
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第11章 组件模型和框架 308
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.1 面向组件 308
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.1.1 什么是组件 309
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.1.2 为什么需要组件 310
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.2 OSGi与组件 311
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.2.1 OSGi面向服务的组件模型 311
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.2.2 改进OSGi组件模型 312
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.2.3 使用组件的绘图示例 316
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.3 声明式服务 316
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.3.1 构建声明式服务组件 317
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.3.2 使用声明式服务提供服务 318
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.3.3 利用声明式服务使用服务 319
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.3.4 声明式服务组件生命周期 324
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
11.4 小结 330
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第12章 高级组件框架 331
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1 Blueprint容器 331
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1.1 Blueprint架构 332
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1.2 用Blueprint提供服务 332
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1.3 通过Blueprint使用服务 335
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1.4 Blueprint组件生命周期 339
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.1.5 Blueprint高级特性 343
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2 Apache Felix iPOJO 347
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2.1 构建iPOJO组件 348
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2.2 通过iPOJO提供服务 349
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2.3 通过iPOJO使用服务 350
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2.4 iPOJO组件生命周期 355
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.2.5 使用iPOJO实例化组件 358
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.3 混合和匹配 362
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
12.4 小结 364
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第13章 启动和嵌入OSGi框架 365
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1 标准启动和嵌入 365
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1.1 框架API概览 366
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1.2 创建框架实例 367
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1.3 配置框架 369
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1.4 启动框架实例 370
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.1.5 停止框架实例 371
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2 启动框架 372
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.1 确定安装哪些bundle 373
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.2 干净地关闭 373
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.3 配置、创建和启动框架 374
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.4 安装bundle 374
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.5 启动bundle 375
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.6 启动主bundle 375
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.2.7 等待关闭 376
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.3 嵌入框架 377
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.3.1 内部还是外部 378
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.3.2 谁在控制 380
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.3.3 嵌入式框架示例 381
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
13.4 小结 386
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第14章 确保应用程序的安全 388
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.1 使用安全或者不使用安全 388
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.2 安全:努力尝试使用 390
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3 OSGi特定的权限 393
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3.1 PackagePermission 393
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3.2 BundlePermission 394
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3.3 AdminPermission 395
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3.4 ServicePermission 396
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.3.5 相对文件权限 397
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4 使用条件权限管理服务管理权限 397
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4.1 条件权限 397
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4.2 条件权限管理服务 398
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4.3 bundle 位置条件 400
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4.4 使用Conditional- Permission Admin 400
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.4.5 实现一个策略文件读取器 404
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.5 数字签名的bundle 405
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.5.1 学习术语 406
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.5.2 创建证书和签名bundle 406
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.5.3 BundleSignerCondition 408
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.6 本地权限 410
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.7 高级权限管理 411
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.7.1 自定义条件概览 411
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.7.2 基于日期的条件 412
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.7.3 用户输入条件 414
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.8 汇总 417
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
14.9 小结 421
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
第15章 Web应用和Web服务 422
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.1 创建Web应用 422
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.1.1 使用HTTP服务规范 424
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.1.2 使用Web应用规范 432
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.1.3 标准WAR:Web URL处理程序 436
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.2 提供和使用Web服务 437
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.2.1 提供一个Web服务 438
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.2.2 使用Web服务 441
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.2.3 发布服务 445
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
15.3 小结 452
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
附录A 构建 bundle 453
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
附录B OSGi标准服务 466
还没有人在此章节添加过书摘,赶紧来抢第一吧!
在此章节添加书摘
导购链接
×
做书摘
文字书摘
读图识字
至少还需要输入
10
字
保存原图片为书摘
上传图片
识别
最多输入
500
个字
上传图片
重新上传
写点笔记吧
至少还需要输入
10
字
章节(选填)
目 录
第一部分 OSGi:模块化、生命周期和服务
第1章 揭开OSGi的面纱 2
1.1 OSGi的定义和目标 3
1.1.1 Java模块化的不足 3
1.1.2 OSGi能帮助你吗 6
1.2 OSGi架构概览 6
1.2.1 OSGi框架 7
1.2.2 将它们结合起来 10
1.3 Hello, world! 10
1.3.1 模块层示例 10
1.3.2 生命周期层示例 12
1.3.3 服务层示例 13
1.3.4 场景设置 15
1.4 OSGi的相关技术 16
1.4.1 Java EE 16
1.4.2 Jini 17
1.4.3 NetBeans 17
1.4.4 JMX 17
1.4.5 轻量级容器 18
1.4.6 Java 业务集成 18
1.4.7 JSR 277 19
1.4.8 JSR 294 19
1.4.9 SCA 19
1.4.10 .NET 20
1.5 小结 20
第2章 精通模块化 21
2.1 什么是模块化 21
2.2 为什么使用模块化 24
2.3 模块化绘图程序 24
2.4 bundle 27
2.4.1 bundle在物理模块化中扮演的角色 28
2.4.2 bundle在逻辑模块化中扮演的角色 29
2.5 使用元数据定义bundle 30
2.5.1 可读信息 31
2.5.2 bundle标识 32
2.5.3 代码可见性 34
2.5.4 类搜索顺序 42
2.6 完成绘图程序设计 43
2.6.1 提高绘图程序的模块化 44
2.6.2 启动新的绘图程序 46
2.7 OSGi依赖解析 46
2.7.1 自动解析依赖 47
2.7.2 使用约束保证一致性 51
2.8 回顾模块化绘图程序的好处 56
2.9 小结 59
第3章 生命周期 60
3.1 生命周期管理 60
3.1.1 什么是生命周期管理 61
3.1.2 为什么需要生命周期管理 62
3.2 OSGi bundle的生命周期 63
3.2.1 将生命周期引入绘图程序 63
3.2.2 OSGi框架在生命周期中的作用 65
3.2.3 bundles激活器的清单文件条目 66
3.2.4 生命周期API 67
3.2.5 生命周期状态图 72
3.2.6 bundle缓存和框架重启 73
3.3 在bundle中使用生命周期API 74
3.3.1 配置bundle 75
3.3.2 部署bundle 76
3.3.3 检查框架状态 81
3.3.4 持久化bundle状态 82
3.3.5 事件监听 85
3.3.6 bundle自我销毁 87
3.4 动态扩展绘图程序 89
3.5 生命周期与模块化 96
3.5.1 解析bundle 96
3.5.2 刷新bundle 98
3.5.3 当更新操作没有完成更新 101
3.6 小结 103
第4章 学习服务 104
4.1 什么是服务、为什么使用服务、什么时候用服务 104
4.1.1 什么是服务 104
4.1.2 为什么使用服务 106
4.1.3 什么时候应该使用服务 109
4.1.4 什么时候不应该使用服务 110
4.1.5 仍然不确定 110
4.2 OSGi服务实战 111
4.2.1 发布服务 112
4.2.2 查找并绑定服务 114
4.3 处理动态性 117
4.3.1 避免常见的陷阱 118
4.3.2 监听服务 121
4.3.3 服务跟踪 126
4.4 在绘图示例中使用服务 129
4.4.1 定义图形服务 129
4.4.2 发布图形服务 129
4.4.3 跟踪图形服务 130
4.5 将服务关联到模块层和生命周期层 131
4.5.1 为什么不能看到我的服务 131
4.5.2 能否提供一个bundle特有的服务 132
4.5.3 应该在何时释放服务 133
4.5.4 何时注销服务 133
4.5.5 应该将接口分开打包吗 133
4.6 标准服务 134
4.6.1 核心服务 134
4.6.2 compendium服务 135
4.7 小结 136
第5章 深入分析模块化特性 138
5.1 管理导出 138
5.1.1 导入导出包 139
5.1.2 隐式导出属性 142
5.1.3 强制导出属性 143
5.1.4 导出过滤 145
5.1.5 复制导出 146
5.2 导入解耦 147
5.2.1 可选导入 147
5.2.2 动态导入 148
5.2.3 可选导入与动态导入的比较 149
5.2.4 日志示例 150
5.3 需要的bundle 153
5.3.1 声明bundle依赖关系 154
5.3.2 聚合分割包 155
5.3.3 bundle依赖的相关问题 158
5.4 将bundle划分为片段 158
5.4.1 片段 159
5.4.2 本地化中使用片段 161
5.5 处理与环境相关的问题 164
5.5.1 依赖执行环境 165
5.5.2 构建本地库 166
5.6 小结 168
第二部分 OSGi实践
第6章 走近bundle 170
6.1 将JAR转换成bundle 170
6.1.1 选取bundle标识 171
6.1.2 导出包 173
6.1.3 发现需要导入的包 177
6.1.4 嵌入与导入 181
6.1.5 增加对生命周期的支持 181
6.1.6 JAR文件转换为bundle的简要说明 183
6.2 分割一个应用到多个bundle 184
6.2.1 创建一个大型bundle 184
6.2.2 将代码拆分到多个bundle中 193
6.2.3 降低模块耦合 197
6.2.4 是否要转换成bundle 201
6.3 小结 204
第7章 测试应用程序 206
7.1 迁移测试到OSGi 206
7.1.1 容器内测试 207
7.1.2 创建测试bundle 208
7.1.3 覆盖所有基础 210
7.2 模拟OSGi 212
7.2.1 测试期望的行为 213
7.2.2 模拟实战 214
7.2.3 模拟意外情景 215
7.2.4 处理多线程测试 216
7.2.5 暴露竞态条件 218
7.3 OSGi高级测试 219
7.3.1 OSGi测试工具 220
7.3.2 在多个框架中运行测试 221
7.3.3 单元测试 225
7.3.4 集成测试 226
7.3.5 管理测试 228
7.4 小结 230
第8章 调试应用 232
8.1 调试bundle 232
8.1.1 调试实战 234
8.1.2 使用HotSwap解决问题 239
8.2 解决类加载相关问题 243
8.2.1 ClassNotFoundException与NoClassDefFoundError
8.2.2 类型转换问题 246
8.2.3 使用uses约束 247
8.2.4 同Class.forName()划清界限 249
8.2.5 线程上下文类加载器 252
8.3 追踪内存泄漏 254
8.4 悬挂服务 258
8.4.1 查找悬挂服务 259
8.4.2 防止悬挂服务 259
8.5 小结 261
第9章 管理bundle 262
9.1 包和bundle的版本控制 262
9.1.1 有效的版本控制 263
9.1.2 包的版本控制 264
9.1.3 bundle的版本控制 266
9.2 配置bundle 267
9.2.1 配置管理服务 268
9.2.2 元类型服务 276
9.2.3 首选项服务 279
9.3 延迟启动bundle 281
9.3.1 激活策略 281
9.3.2 使用激活策略 283
9.4 小结 284
第10章 管理应用 285
10.1 部署bundle 285
10.1.1 管理代理 285
10.1.2 OSGi bundle仓库 287
10.1.3 部署管理服务 294
10.2 指定bundle激活顺序 301
10.2.1 介绍启动级别服务 302
10.2.2 使用启动级别服务 303
10.3 小结 306
第三部分 高级主题
第11章 组件模型和框架 308
11.1 面向组件 308
11.1.1 什么是组件 309
11.1.2 为什么需要组件 310
11.2 OSGi与组件 311
11.2.1 OSGi面向服务的组件模型 311
11.2.2 改进OSGi组件模型 312
11.2.3 使用组件的绘图示例 316
11.3 声明式服务 316
11.3.1 构建声明式服务组件 317
11.3.2 使用声明式服务提供服务 318
11.3.3 利用声明式服务使用服务 319
11.3.4 声明式服务组件生命周期 324
11.4 小结 330
第12章 高级组件框架 331
12.1 Blueprint容器 331
12.1.1 Blueprint架构 332
12.1.2 用Blueprint提供服务 332
12.1.3 通过Blueprint使用服务 335
12.1.4 Blueprint组件生命周期 339
12.1.5 Blueprint高级特性 343
12.2 Apache Felix iPOJO 347
12.2.1 构建iPOJO组件 348
12.2.2 通过iPOJO提供服务 349
12.2.3 通过iPOJO使用服务 350
12.2.4 iPOJO组件生命周期 355
12.2.5 使用iPOJO实例化组件 358
12.3 混合和匹配 362
12.4 小结 364
第13章 启动和嵌入OSGi框架 365
13.1 标准启动和嵌入 365
13.1.1 框架API概览 366
13.1.2 创建框架实例 367
13.1.3 配置框架 369
13.1.4 启动框架实例 370
13.1.5 停止框架实例 371
13.2 启动框架 372
13.2.1 确定安装哪些bundle 373
13.2.2 干净地关闭 373
13.2.3 配置、创建和启动框架 374
13.2.4 安装bundle 374
13.2.5 启动bundle 375
13.2.6 启动主bundle 375
13.2.7 等待关闭 376
13.3 嵌入框架 377
13.3.1 内部还是外部 378
13.3.2 谁在控制 380
13.3.3 嵌入式框架示例 381
13.4 小结 386
第14章 确保应用程序的安全 388
14.1 使用安全或者不使用安全 388
14.2 安全:努力尝试使用 390
14.3 OSGi特定的权限 393
14.3.1 PackagePermission 393
14.3.2 BundlePermission 394
14.3.3 AdminPermission 395
14.3.4 ServicePermission 396
14.3.5 相对文件权限 397
14.4 使用条件权限管理服务管理权限 397
14.4.1 条件权限 397
14.4.2 条件权限管理服务 398
14.4.3 bundle 位置条件 400
14.4.4 使用Conditional- Permission Admin 400
14.4.5 实现一个策略文件读取器 404
14.5 数字签名的bundle 405
14.5.1 学习术语 406
14.5.2 创建证书和签名bundle 406
14.5.3 BundleSignerCondition 408
14.6 本地权限 410
14.7 高级权限管理 411
14.7.1 自定义条件概览 411
14.7.2 基于日期的条件 412
14.7.3 用户输入条件 414
14.8 汇总 417
14.9 小结 421
第15章 Web应用和Web服务 422
15.1 创建Web应用 422
15.1.1 使用HTTP服务规范 424
15.1.2 使用Web应用规范 432
15.1.3 标准WAR:Web URL处理程序 436
15.2 提供和使用Web服务 437
15.2.1 提供一个Web服务 438
15.2.2 使用Web服务 441
15.2.3 发布服务 445
15.3 小结 452
附录A 构建 bundle 453
附录B OSGi标准服务 466
页码(选填)
这本书已经添加了这些章节,请勾选或者新建你的书摘所属的章节
add
up
down
remove
目 录
第一部分 OSGi:模块化、生命周期和服务
第1章 揭开OSGi的面纱 2
1.1 OSGi的定义和目标 3
1.1.1 Java模块化的不足 3
1.1.2 OSGi能帮助你吗 6
1.2 OSGi架构概览 6
1.2.1 OSGi框架 7
1.2.2 将它们结合起来 10
1.3 Hello, world! 10
1.3.1 模块层示例 10
1.3.2 生命周期层示例 12
1.3.3 服务层示例 13
1.3.4 场景设置 15
1.4 OSGi的相关技术 16
1.4.1 Java EE 16
1.4.2 Jini 17
1.4.3 NetBeans 17
1.4.4 JMX 17
1.4.5 轻量级容器 18
1.4.6 Java 业务集成 18
1.4.7 JSR 277 19
1.4.8 JSR 294 19
1.4.9 SCA 19
1.4.10 .NET 20
1.5 小结 20
第2章 精通模块化 21
2.1 什么是模块化 21
2.2 为什么使用模块化 24
2.3 模块化绘图程序 24
2.4 bundle 27
2.4.1 bundle在物理模块化中扮演的角色 28
2.4.2 bundle在逻辑模块化中扮演的角色 29
2.5 使用元数据定义bundle 30
2.5.1 可读信息 31
2.5.2 bundle标识 32
2.5.3 代码可见性 34
2.5.4 类搜索顺序 42
2.6 完成绘图程序设计 43
2.6.1 提高绘图程序的模块化 44
2.6.2 启动新的绘图程序 46
2.7 OSGi依赖解析 46
2.7.1 自动解析依赖 47
2.7.2 使用约束保证一致性 51
2.8 回顾模块化绘图程序的好处 56
2.9 小结 59
第3章 生命周期 60
3.1 生命周期管理 60
3.1.1 什么是生命周期管理 61
3.1.2 为什么需要生命周期管理 62
3.2 OSGi bundle的生命周期 63
3.2.1 将生命周期引入绘图程序 63
3.2.2 OSGi框架在生命周期中的作用 65
3.2.3 bundles激活器的清单文件条目 66
3.2.4 生命周期API 67
3.2.5 生命周期状态图 72
3.2.6 bundle缓存和框架重启 73
3.3 在bundle中使用生命周期API 74
3.3.1 配置bundle 75
3.3.2 部署bundle 76
3.3.3 检查框架状态 81
3.3.4 持久化bundle状态 82
3.3.5 事件监听 85
3.3.6 bundle自我销毁 87
3.4 动态扩展绘图程序 89
3.5 生命周期与模块化 96
3.5.1 解析bundle 96
3.5.2 刷新bundle 98
3.5.3 当更新操作没有完成更新 101
3.6 小结 103
第4章 学习服务 104
4.1 什么是服务、为什么使用服务、什么时候用服务 104
4.1.1 什么是服务 104
4.1.2 为什么使用服务 106
4.1.3 什么时候应该使用服务 109
4.1.4 什么时候不应该使用服务 110
4.1.5 仍然不确定 110
4.2 OSGi服务实战 111
4.2.1 发布服务 112
4.2.2 查找并绑定服务 114
4.3 处理动态性 117
4.3.1 避免常见的陷阱 118
4.3.2 监听服务 121
4.3.3 服务跟踪 126
4.4 在绘图示例中使用服务 129
4.4.1 定义图形服务 129
4.4.2 发布图形服务 129
4.4.3 跟踪图形服务 130
4.5 将服务关联到模块层和生命周期层 131
4.5.1 为什么不能看到我的服务 131
4.5.2 能否提供一个bundle特有的服务 132
4.5.3 应该在何时释放服务 133
4.5.4 何时注销服务 133
4.5.5 应该将接口分开打包吗 133
4.6 标准服务 134
4.6.1 核心服务 134
4.6.2 compendium服务 135
4.7 小结 136
第5章 深入分析模块化特性 138
5.1 管理导出 138
5.1.1 导入导出包 139
5.1.2 隐式导出属性 142
5.1.3 强制导出属性 143
5.1.4 导出过滤 145
5.1.5 复制导出 146
5.2 导入解耦 147
5.2.1 可选导入 147
5.2.2 动态导入 148
5.2.3 可选导入与动态导入的比较 149
5.2.4 日志示例 150
5.3 需要的bundle 153
5.3.1 声明bundle依赖关系 154
5.3.2 聚合分割包 155
5.3.3 bundle依赖的相关问题 158
5.4 将bundle划分为片段 158
5.4.1 片段 159
5.4.2 本地化中使用片段 161
5.5 处理与环境相关的问题 164
5.5.1 依赖执行环境 165
5.5.2 构建本地库 166
5.6 小结 168
第二部分 OSGi实践
第6章 走近bundle 170
6.1 将JAR转换成bundle 170
6.1.1 选取bundle标识 171
6.1.2 导出包 173
6.1.3 发现需要导入的包 177
6.1.4 嵌入与导入 181
6.1.5 增加对生命周期的支持 181
6.1.6 JAR文件转换为bundle的简要说明 183
6.2 分割一个应用到多个bundle 184
6.2.1 创建一个大型bundle 184
6.2.2 将代码拆分到多个bundle中 193
6.2.3 降低模块耦合 197
6.2.4 是否要转换成bundle 201
6.3 小结 204
第7章 测试应用程序 206
7.1 迁移测试到OSGi 206
7.1.1 容器内测试 207
7.1.2 创建测试bundle 208
7.1.3 覆盖所有基础 210
7.2 模拟OSGi 212
7.2.1 测试期望的行为 213
7.2.2 模拟实战 214
7.2.3 模拟意外情景 215
7.2.4 处理多线程测试 216
7.2.5 暴露竞态条件 218
7.3 OSGi高级测试 219
7.3.1 OSGi测试工具 220
7.3.2 在多个框架中运行测试 221
7.3.3 单元测试 225
7.3.4 集成测试 226
7.3.5 管理测试 228
7.4 小结 230
第8章 调试应用 232
8.1 调试bundle 232
8.1.1 调试实战 234
8.1.2 使用HotSwap解决问题 239
8.2 解决类加载相关问题 243
8.2.1 ClassNotFoundException与NoClassDefFoundError
8.2.2 类型转换问题 246
8.2.3 使用uses约束 247
8.2.4 同Class.forName()划清界限 249
8.2.5 线程上下文类加载器 252
8.3 追踪内存泄漏 254
8.4 悬挂服务 258
8.4.1 查找悬挂服务 259
8.4.2 防止悬挂服务 259
8.5 小结 261
第9章 管理bundle 262
9.1 包和bundle的版本控制 262
9.1.1 有效的版本控制 263
9.1.2 包的版本控制 264
9.1.3 bundle的版本控制 266
9.2 配置bundle 267
9.2.1 配置管理服务 268
9.2.2 元类型服务 276
9.2.3 首选项服务 279
9.3 延迟启动bundle 281
9.3.1 激活策略 281
9.3.2 使用激活策略 283
9.4 小结 284
第10章 管理应用 285
10.1 部署bundle 285
10.1.1 管理代理 285
10.1.2 OSGi bundle仓库 287
10.1.3 部署管理服务 294
10.2 指定bundle激活顺序 301
10.2.1 介绍启动级别服务 302
10.2.2 使用启动级别服务 303
10.3 小结 306
第三部分 高级主题
第11章 组件模型和框架 308
11.1 面向组件 308
11.1.1 什么是组件 309
11.1.2 为什么需要组件 310
11.2 OSGi与组件 311
11.2.1 OSGi面向服务的组件模型 311
11.2.2 改进OSGi组件模型 312
11.2.3 使用组件的绘图示例 316
11.3 声明式服务 316
11.3.1 构建声明式服务组件 317
11.3.2 使用声明式服务提供服务 318
11.3.3 利用声明式服务使用服务 319
11.3.4 声明式服务组件生命周期 324
11.4 小结 330
第12章 高级组件框架 331
12.1 Blueprint容器 331
12.1.1 Blueprint架构 332
12.1.2 用Blueprint提供服务 332
12.1.3 通过Blueprint使用服务 335
12.1.4 Blueprint组件生命周期 339
12.1.5 Blueprint高级特性 343
12.2 Apache Felix iPOJO 347
12.2.1 构建iPOJO组件 348
12.2.2 通过iPOJO提供服务 349
12.2.3 通过iPOJO使用服务 350
12.2.4 iPOJO组件生命周期 355
12.2.5 使用iPOJO实例化组件 358
12.3 混合和匹配 362
12.4 小结 364
第13章 启动和嵌入OSGi框架 365
13.1 标准启动和嵌入 365
13.1.1 框架API概览 366
13.1.2 创建框架实例 367
13.1.3 配置框架 369
13.1.4 启动框架实例 370
13.1.5 停止框架实例 371
13.2 启动框架 372
13.2.1 确定安装哪些bundle 373
13.2.2 干净地关闭 373
13.2.3 配置、创建和启动框架 374
13.2.4 安装bundle 374
13.2.5 启动bundle 375
13.2.6 启动主bundle 375
13.2.7 等待关闭 376
13.3 嵌入框架 377
13.3.1 内部还是外部 378
13.3.2 谁在控制 380
13.3.3 嵌入式框架示例 381
13.4 小结 386
第14章 确保应用程序的安全 388
14.1 使用安全或者不使用安全 388
14.2 安全:努力尝试使用 390
14.3 OSGi特定的权限 393
14.3.1 PackagePermission 393
14.3.2 BundlePermission 394
14.3.3 AdminPermission 395
14.3.4 ServicePermission 396
14.3.5 相对文件权限 397
14.4 使用条件权限管理服务管理权限 397
14.4.1 条件权限 397
14.4.2 条件权限管理服务 398
14.4.3 bundle 位置条件 400
14.4.4 使用Conditional- Permission Admin 400
14.4.5 实现一个策略文件读取器 404
14.5 数字签名的bundle 405
14.5.1 学习术语 406
14.5.2 创建证书和签名bundle 406
14.5.3 BundleSignerCondition 408
14.6 本地权限 410
14.7 高级权限管理 411
14.7.1 自定义条件概览 411
14.7.2 基于日期的条件 412
14.7.3 用户输入条件 414
14.8 汇总 417
14.9 小结 421
第15章 Web应用和Web服务 422
15.1 创建Web应用 422
15.1.1 使用HTTP服务规范 424
15.1.2 使用Web应用规范 432
15.1.3 标准WAR:Web URL处理程序 436
15.2 提供和使用Web服务 437
15.2.1 提供一个Web服务 438
15.2.2 使用Web服务 441
15.2.3 发布服务 445
15.3 小结 452
附录A 构建 bundle 453
附录B OSGi标准服务 466
×
添加一个书摘本
搜索创建书摘本
搜索
正在搜索...
不对,换一下
书名
作者
出版社
备注
ISBN
*
*
目 录
第一部分 OSGi:模块化、生命周期和服务
第1章 揭开OSGi的面纱 2
1.1 OSGi的定义和目标 3
1.1.1 Java模块化的不足 3
1.1.2 OSGi能帮助你吗 6
1.2 OSGi架构概览 6
1.2.1 OSGi框架 7
1.2.2 将它们结合起来 10
1.3 Hello, world! 10
1.3.1 模块层示例 10
1.3.2 生命周期层示例 12
1.3.3 服务层示例 13
1.3.4 场景设置 15
1.4 OSGi的相关技术 16
1.4.1 Java EE 16
1.4.2 Jini 17
1.4.3 NetBeans 17
1.4.4 JMX 17
1.4.5 轻量级容器 18
1.4.6 Java 业务集成 18
1.4.7 JSR 277 19
1.4.8 JSR 294 19
1.4.9 SCA 19
1.4.10 .NET 20
1.5 小结 20
第2章 精通模块化 21
2.1 什么是模块化 21
2.2 为什么使用模块化 24
2.3 模块化绘图程序 24
2.4 bundle 27
2.4.1 bundle在物理模块化中扮演的角色 28
2.4.2 bundle在逻辑模块化中扮演的角色 29
2.5 使用元数据定义bundle 30
2.5.1 可读信息 31
2.5.2 bundle标识 32
2.5.3 代码可见性 34
2.5.4 类搜索顺序 42
2.6 完成绘图程序设计 43
2.6.1 提高绘图程序的模块化 44
2.6.2 启动新的绘图程序 46
2.7 OSGi依赖解析 46
2.7.1 自动解析依赖 47
2.7.2 使用约束保证一致性 51
2.8 回顾模块化绘图程序的好处 56
2.9 小结 59
第3章 生命周期 60
3.1 生命周期管理 60
3.1.1 什么是生命周期管理 61
3.1.2 为什么需要生命周期管理 62
3.2 OSGi bundle的生命周期 63
3.2.1 将生命周期引入绘图程序 63
3.2.2 OSGi框架在生命周期中的作用 65
3.2.3 bundles激活器的清单文件条目 66
3.2.4 生命周期API 67
3.2.5 生命周期状态图 72
3.2.6 bundle缓存和框架重启 73
3.3 在bundle中使用生命周期API 74
3.3.1 配置bundle 75
3.3.2 部署bundle 76
3.3.3 检查框架状态 81
3.3.4 持久化bundle状态 82
3.3.5 事件监听 85
3.3.6 bundle自我销毁 87
3.4 动态扩展绘图程序 89
3.5 生命周期与模块化 96
3.5.1 解析bundle 96
3.5.2 刷新bundle 98
3.5.3 当更新操作没有完成更新 101
3.6 小结 103
第4章 学习服务 104
4.1 什么是服务、为什么使用服务、什么时候用服务 104
4.1.1 什么是服务 104
4.1.2 为什么使用服务 106
4.1.3 什么时候应该使用服务 109
4.1.4 什么时候不应该使用服务 110
4.1.5 仍然不确定 110
4.2 OSGi服务实战 111
4.2.1 发布服务 112
4.2.2 查找并绑定服务 114
4.3 处理动态性 117
4.3.1 避免常见的陷阱 118
4.3.2 监听服务 121
4.3.3 服务跟踪 126
4.4 在绘图示例中使用服务 129
4.4.1 定义图形服务 129
4.4.2 发布图形服务 129
4.4.3 跟踪图形服务 130
4.5 将服务关联到模块层和生命周期层 131
4.5.1 为什么不能看到我的服务 131
4.5.2 能否提供一个bundle特有的服务 132
4.5.3 应该在何时释放服务 133
4.5.4 何时注销服务 133
4.5.5 应该将接口分开打包吗 133
4.6 标准服务 134
4.6.1 核心服务 134
4.6.2 compendium服务 135
4.7 小结 136
第5章 深入分析模块化特性 138
5.1 管理导出 138
5.1.1 导入导出包 139
5.1.2 隐式导出属性 142
5.1.3 强制导出属性 143
5.1.4 导出过滤 145
5.1.5 复制导出 146
5.2 导入解耦 147
5.2.1 可选导入 147
5.2.2 动态导入 148
5.2.3 可选导入与动态导入的比较 149
5.2.4 日志示例 150
5.3 需要的bundle 153
5.3.1 声明bundle依赖关系 154
5.3.2 聚合分割包 155
5.3.3 bundle依赖的相关问题 158
5.4 将bundle划分为片段 158
5.4.1 片段 159
5.4.2 本地化中使用片段 161
5.5 处理与环境相关的问题 164
5.5.1 依赖执行环境 165
5.5.2 构建本地库 166
5.6 小结 168
第二部分 OSGi实践
第6章 走近bundle 170
6.1 将JAR转换成bundle 170
6.1.1 选取bundle标识 171
6.1.2 导出包 173
6.1.3 发现需要导入的包 177
6.1.4 嵌入与导入 181
6.1.5 增加对生命周期的支持 181
6.1.6 JAR文件转换为bundle的简要说明 183
6.2 分割一个应用到多个bundle 184
6.2.1 创建一个大型bundle 184
6.2.2 将代码拆分到多个bundle中 193
6.2.3 降低模块耦合 197
6.2.4 是否要转换成bundle 201
6.3 小结 204
第7章 测试应用程序 206
7.1 迁移测试到OSGi 206
7.1.1 容器内测试 207
7.1.2 创建测试bundle 208
7.1.3 覆盖所有基础 210
7.2 模拟OSGi 212
7.2.1 测试期望的行为 213
7.2.2 模拟实战 214
7.2.3 模拟意外情景 215
7.2.4 处理多线程测试 216
7.2.5 暴露竞态条件 218
7.3 OSGi高级测试 219
7.3.1 OSGi测试工具 220
7.3.2 在多个框架中运行测试 221
7.3.3 单元测试 225
7.3.4 集成测试 226
7.3.5 管理测试 228
7.4 小结 230
第8章 调试应用 232
8.1 调试bundle 232
8.1.1 调试实战 234
8.1.2 使用HotSwap解决问题 239
8.2 解决类加载相关问题 243
8.2.1 ClassNotFoundException与NoClassDefFoundError
8.2.2 类型转换问题 246
8.2.3 使用uses约束 247
8.2.4 同Class.forName()划清界限 249
8.2.5 线程上下文类加载器 252
8.3 追踪内存泄漏 254
8.4 悬挂服务 258
8.4.1 查找悬挂服务 259
8.4.2 防止悬挂服务 259
8.5 小结 261
第9章 管理bundle 262
9.1 包和bundle的版本控制 262
9.1.1 有效的版本控制 263
9.1.2 包的版本控制 264
9.1.3 bundle的版本控制 266
9.2 配置bundle 267
9.2.1 配置管理服务 268
9.2.2 元类型服务 276
9.2.3 首选项服务 279
9.3 延迟启动bundle 281
9.3.1 激活策略 281
9.3.2 使用激活策略 283
9.4 小结 284
第10章 管理应用 285
10.1 部署bundle 285
10.1.1 管理代理 285
10.1.2 OSGi bundle仓库 287
10.1.3 部署管理服务 294
10.2 指定bundle激活顺序 301
10.2.1 介绍启动级别服务 302
10.2.2 使用启动级别服务 303
10.3 小结 306
第三部分 高级主题
第11章 组件模型和框架 308
11.1 面向组件 308
11.1.1 什么是组件 309
11.1.2 为什么需要组件 310
11.2 OSGi与组件 311
11.2.1 OSGi面向服务的组件模型 311
11.2.2 改进OSGi组件模型 312
11.2.3 使用组件的绘图示例 316
11.3 声明式服务 316
11.3.1 构建声明式服务组件 317
11.3.2 使用声明式服务提供服务 318
11.3.3 利用声明式服务使用服务 319
11.3.4 声明式服务组件生命周期 324
11.4 小结 330
第12章 高级组件框架 331
12.1 Blueprint容器 331
12.1.1 Blueprint架构 332
12.1.2 用Blueprint提供服务 332
12.1.3 通过Blueprint使用服务 335
12.1.4 Blueprint组件生命周期 339
12.1.5 Blueprint高级特性 343
12.2 Apache Felix iPOJO 347
12.2.1 构建iPOJO组件 348
12.2.2 通过iPOJO提供服务 349
12.2.3 通过iPOJO使用服务 350
12.2.4 iPOJO组件生命周期 355
12.2.5 使用iPOJO实例化组件 358
12.3 混合和匹配 362
12.4 小结 364
第13章 启动和嵌入OSGi框架 365
13.1 标准启动和嵌入 365
13.1.1 框架API概览 366
13.1.2 创建框架实例 367
13.1.3 配置框架 369
13.1.4 启动框架实例 370
13.1.5 停止框架实例 371
13.2 启动框架 372
13.2.1 确定安装哪些bundle 373
13.2.2 干净地关闭 373
13.2.3 配置、创建和启动框架 374
13.2.4 安装bundle 374
13.2.5 启动bundle 375
13.2.6 启动主bundle 375
13.2.7 等待关闭 376
13.3 嵌入框架 377
13.3.1 内部还是外部 378
13.3.2 谁在控制 380
13.3.3 嵌入式框架示例 381
13.4 小结 386
第14章 确保应用程序的安全 388
14.1 使用安全或者不使用安全 388
14.2 安全:努力尝试使用 390
14.3 OSGi特定的权限 393
14.3.1 PackagePermission 393
14.3.2 BundlePermission 394
14.3.3 AdminPermission 395
14.3.4 ServicePermission 396
14.3.5 相对文件权限 397
14.4 使用条件权限管理服务管理权限 397
14.4.1 条件权限 397
14.4.2 条件权限管理服务 398
14.4.3 bundle 位置条件 400
14.4.4 使用Conditional- Permission Admin 400
14.4.5 实现一个策略文件读取器 404
14.5 数字签名的bundle 405
14.5.1 学习术语 406
14.5.2 创建证书和签名bundle 406
14.5.3 BundleSignerCondition 408
14.6 本地权限 410
14.7 高级权限管理 411
14.7.1 自定义条件概览 411
14.7.2 基于日期的条件 412
14.7.3 用户输入条件 414
14.8 汇总 417
14.9 小结 421
第15章 Web应用和Web服务 422
15.1 创建Web应用 422
15.1.1 使用HTTP服务规范 424
15.1.2 使用Web应用规范 432
15.1.3 标准WAR:Web URL处理程序 436
15.2 提供和使用Web服务 437
15.2.1 提供一个Web服务 438
15.2.2 使用Web服务 441
15.2.3 发布服务 445
15.3 小结 452
附录A 构建 bundle 453
附录B OSGi标准服务 466