图书介绍
OSGi实战 OSGi规范制定者亲自撰写 汇集Apache项目技术实战经验PDF|Epub|txt|kindle电子书版本网盘下载
- (美)RichardS.HallKarlPaulsStuartMcCullochDavidSavage著;郭庆,李楠,李守超,谢莹莹,张磊译;张晋锋,梁晓湛审 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115300676
- 出版时间:2013
- 标注页数:468页
- 文件大小:227MB
- 文件页数:486页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
OSGi实战 OSGi规范制定者亲自撰写 汇集Apache项目技术实战经验PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 OSGi:模块化、生命周期和服务2
第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 EE16
1.4.2 Jini17
1.4.3 NetBeans17
1.4.4 JMX17
1.4.5 轻量级容器18
1.4.6 Java业务集成18
1.4.7 JSR 27719
1.4.8 JSR 29419
1.4.9 SCA19
1.4.10 .NET20
1.5 小结20
第2章 精通模块化21
2.1 什么是模块化21
2.2 为什么使用模块化24
2.3 模块化绘图程序24
2.4 bundle27
2.4.1 bundle在物理模块化中扮演的角色28
2.4.2 bundle在逻辑模块化中扮演的角色29
2.5 使用元数据定义bundle30
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 生命周期API67
3.2.5 生命周期状态图72
3.2.6 bundle缓存和框架重启73
3.3 在bundle中使用生命周期API74
3.3.1 配置bundle75
3.3.2 部署bundle76
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 解析bundle96
3.5.2 刷新bundle98
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 需要的bundle153
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实践170
第6章 走近bundle170
6.1 将JAR转换成bundle170
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 分割一个应用到多个bundle184
6.2.1 创建一个大型bundle184
6.2.2 将代码拆分到多个bundle中193
6.2.3 降低模块耦合197
6.2.4 是否要转换成bundle201
6.3 小结204
第7章 测试应用程序206
7.1 迁移测试到OSGi206
7.1.1 容器内测试207
7.1.2 创建测试bundle208
7.1.3 覆盖所有基础210
7.2 模拟OSGi212
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 调试bundle232
8.1.1 调试实战234
8.1.2 使用HotSwap解决问题239
8.2 解决类加载相关问题243
8.2.1 ClassNotFoundException与NoClassDefFoundError244
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章 管理bundle262
9.1 包和bundle的版本控制262
9.1.1 有效的版本控制263
9.1.2 包的版本控制264
9.1.3 bundle的版本控制266
9.2 配置bundle267
9.2.1 配置管理服务268
9.2.2 元类型服务276
9.2.3 首选项服务279
9.3 延迟启动bundle281
9.3.1 激活策略281
9.3.2 使用激活策略283
9.4 小结284
第10章 管理应用285
10.1 部署bundle285
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
第三部分 高级主题308
第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 iPOJO347
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 确定安装哪些bundle373
13.2.2 干净地关闭373
13.2.3 配置、创建和启动框架374
13.2.4 安装bundle374
13.2.5 启动bundle375
13.2.6 启动主bundle375
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 PackagePermission393
14.3.2 BundlePermission394
14.3.3 AdminPermission395
14.3.4 ServicePermission396
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 Admin400
14.4.5 实现一个策略文件读取器404
14.5 数字签名的bundle405
14.5.1 学习术语406
14.5.2 创建证书和签名bundle406
14.5.3 BundleSignerCondition408
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 构建bundle453
附录B OSGi标准服务466