展开全部

主编推荐语

OSGi规范制定者亲自撰写,汇集Apache项目技术实战经验。

内容简介

为了弥补OSGi规范在应用指导方面的不足,四位活跃在OSGi开发第一线的技术专家联手打造了本书。本书面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要性及其使用方法。

本书还介绍了某些技术的低层实现细节,引领读者畅游OSGi的世界。

全书可分为三大部分:解读OSGi核心规范;阐述如何在实践中使用规范;介绍一些与OSGi相关的高级主题。

本书通过精彩的讲解和贴近实战的丰富示例,帮助读者完成“入门→进阶→提高”三级跳。

目录

  • 版权信息
  • 致谢
  • 前言
  • 关于本书
  • 路线图
  • 代码及排版规范
  • 作者在线
  • 关于实战系列
  • 关于封面插图
  • 第一部分 OSGi:模块化、生命周期和服务
  • 第1章 揭开OSGi的面纱
  • 1.1 OSGi的定义和目标
  • 1.1.1 Java模块化的不足
  • 1.1.2 OSGi能帮助你吗
  • 1.2 OSGi架构概览
  • 1.2.1 OSGi框架
  • 1.2.2 将它们结合起来
  • 1.3 Hello, world!
  • 1.3.1 模块层示例
  • 1.3.2 生命周期层示例
  • 1.3.3 服务层示例
  • 1.3.4 场景设置
  • 1.4 OSGi的相关技术
  • 1.4.1 Java EE
  • 1.4.2 Jini
  • 1.4.3 NetBeans
  • 1.4.4 JMX
  • 1.4.5 轻量级容器
  • 1.4.6 Java业务集成
  • 1.4.7 JSR 277
  • 1.4.8 JSR 294
  • 1.4.9 SCA
  • 1.4.10 .NET
  • 1.5 小结
  • 第2章 精通模块化
  • 2.1 什么是模块化
  • 模块化与面向对象
  • 2.2 为什么使用模块化
  • 2.3 模块化绘图程序
  • 2.4 bundle
  • 2.4.1 bundle在物理模块化中扮演的角色
  • 2.4.2 bundle在逻辑模块化中扮演的角色
  • 2.5 使用元数据定义bundle
  • 2.5.1 可读信息
  • 2.5.2 bundle标识
  • 2.5.3 代码可见性
  • 2.5.4 类搜索顺序
  • 2.6 完成绘图程序设计
  • 2.6.1 提高绘图程序的模块化
  • 2.6.2 启动新的绘图程序
  • 2.7 OSGi依赖解析
  • 2.7.1 自动解析依赖
  • 2.7.2 使用约束保证一致性
  • 2.8 回顾模块化绘图程序的好处
  • 2.9 小结
  • 第3章 生命周期
  • 3.1 生命周期管理
  • 3.1.1 什么是生命周期管理
  • 3.1.2 为什么需要生命周期管理
  • 3.2 OSGi bundle的生命周期
  • 3.2.1 将生命周期引入绘图程序
  • 3.2.2 OSGi框架在生命周期中的作用
  • 3.2.3 bundle激活器的清单文件条目
  • 3.2.4 生命周期API
  • 3.2.5 生命周期状态图
  • 3.2.6 bundle缓存和框架重启
  • 3.3 在bundle中使用生命周期API
  • 3.3.1 配置bundle
  • 3.3.2 部署bundle
  • 3.3.3 检查框架状态
  • 3.3.4 持久化bundle状态
  • 3.3.5 事件监听
  • 3.3.6 bundle自我销毁
  • 3.4 动态扩展绘图程序
  • 3.5 生命周期与模块化
  • 3.5.1 解析bundle
  • 3.5.2 刷新bundle
  • 3.5.3 更新操作没有完成更新
  • 3.6 小结
  • 第4章 学习服务
  • 4.1 什么是服务、为什么使用服务、什么时候用服务
  • 4.1.1 什么是服务
  • 4.1.2 为什么使用服务
  • 4.1.3 什么时候应该使用服务
  • 4.1.4 什么时候不应该使用服务
  • 4.1.5 仍然不确定
  • 4.2 OSGi服务实战
  • 4.2.1 发布服务
  • 4.2.2 查找并绑定服务
  • 4.3 处理动态性
  • 4.3.1 避免常见的陷阱
  • 4.3.2 监听服务
  • 4.3.3 服务追踪
  • 4.4 在绘图示例中使用服务
  • 4.4.1 定义图形服务
  • 4.4.2 发布图形服务
  • 4.4.3 追踪图形服务
  • 4.5 将服务关联到模块层和生命周期层
  • 4.5.1 为什么不能看到我的服务
  • 4.5.2 能否提供一个bundle特有的服务
  • 4.5.3 应该在何时释放服务
  • 4.5.4 何时注销服务
  • 4.5.5 应该将接口分开打包吗
  • 4.6 标准服务
  • 4.6.1 核心服务
  • 4.6.2 compendium服务
  • 4.7 小结
  • 第5章 深入分析模块化特性
  • 5.1 管理导出
  • 5.1.1 导入导出包
  • 5.1.2 隐式导出属性
  • 5.1.3 强制导出属性
  • 5.1.4 导出过滤
  • 5.1.5 复制导出
  • 5.2 导入解耦
  • 5.2.1 可选导入
  • 5.2.2 动态导入
  • 5.2.3 可选导入与动态导入的比较
  • 5.2.4 日志示例
  • 5.3 需要的bundle
  • 5.3.1 声明bundle依赖关系
  • 5.3.2 聚合分割包
  • 5.3.3 bundle依赖的相关问题
  • 5.4 将bundle划分为片段
  • 5.4.1 片段
  • 5.4.2 本地化中使用片段
  • 5.5 处理与环境相关的问题
  • 5.5.1 依赖执行环境
  • 5.5.2 构建本地库
  • 5.6 小结
  • 第二部分 OSGi实践
  • 第6章 走近bundle
  • 6.1 将JAR转换成bundle
  • 6.1.1 选取bundle标识
  • 6.1.2 导出包
  • 6.1.3 发现需要导入的包
  • 6.1.4 嵌入与导入
  • 6.1.5 增加对生命周期的支持
  • 6.1.6 JAR文件转换为bundle的简要说明
  • 6.2 分割一个应用到多个bundle
  • 6.2.1 创建一个大型bundle
  • 6.2.2 将代码拆分到多个bundle中
  • 6.2.3 降低模块耦合
  • 6.2.4 是否要转换成bundle
  • 6.3 小结
  • 第7章 测试应用程序
  • 7.1 迁移测试到OSGi
  • 7.1.1 容器内测试
  • 7.1.2 创建测试bundle
  • 7.1.3 覆盖所有基础
  • 7.2 模拟OSGi
  • 7.2.1 测试期望的行为
  • 7.2.2 模拟实战
  • 7.2.3 模拟意外情景
  • 7.2.4 处理多线程测试
  • 7.2.5 暴露竞态条件
  • 7.3 OSGi高级测试
  • 7.3.1 OSGi测试工具
  • 7.3.2 在多个框架中运行测试
  • 7.3.3 单元测试
  • 7.3.4 集成测试
  • 7.3.5 管理测试
  • 7.4 小结
  • 第8章 调试应用
  • 8.1 调试bundle
  • 8.1.1 调试实战
  • 8.1.2 使用HotSwap解决问题
  • 8.2 解决类加载相关问题
  • 8.2.1 ClassNotFoundException与NoClassDefFoundError
  • 8.2.2 类型转换问题
  • 8.2.3 使用uses约束
  • 8.2.4 同Class.forName()划清界限
  • 8.2.5 线程上下文类加载器
  • 8.3 追踪内存泄漏
  • 分析OSGi堆转储
  • 8.4 悬挂服务
  • 8.4.1 查找悬挂服务
  • 8.4.2 防止悬挂服务
  • 8.5 小结
  • 第9章 管理bundle
  • 9.1 包和bundle的版本控制
  • 9.1.1 有效的版本控制
  • 9.1.2 包的版本控制
  • 9.1.3 bundle的版本控制
  • 9.2 配置bundle
  • 9.2.1 配置管理服务
  • 9.2.2 元类型服务
  • 9.2.3 首选项服务
  • 9.3 延迟启动bundle
  • 9.3.1 激活策略
  • 9.3.2 使用激活策略
  • 9.4 小结
  • 第10章 管理应用
  • 10.1 部署bundle
  • 10.1.1 管理代理
  • 10.1.2 OSGi bundle仓库
  • 10.1.3 部署管理服务
  • 10.2 指定bundle激活顺序
  • 10.2.1 介绍启动级别服务
  • 10.2.2 使用启动级别服务
  • 10.3 小结
  • 第三部分 高级主题
  • 第11章 组件模型和框架
  • 11.1 面向组件
  • 11.1.1 什么是组件
  • 11.1.2 为什么需要组件
  • 11.2 OSGi与组件
  • 11.2.1 OSGi面向服务的组件模型
  • 11.2.2 改进OSGi组件模型
  • 11.2.3 使用组件的绘图示例
  • 11.3 声明式服务
  • 11.3.1 构建声明式服务组件
  • 11.3.2 使用声明式服务提供服务
  • 11.3.3 利用声明式服务使用服务
  • 11.3.4 声明式服务组件生命周期
  • 11.4 小结
  • 第12章 高级组件框架
  • 12.1 Blueprint容器
  • 12.1.1 Blueprint架构
  • 12.1.2 用Blueprint提供服务
  • 12.1.3 通过Blueprint使用服务
  • 12.1.4 Blueprint组件生命周期
  • 12.1.5 Blueprint高级特性
  • 12.2 Apache Felix iPOJO
  • 12.2.1 构建iPOJO组件
  • 12.2.2 通过iPOJO提供服务
  • 12.2.3 通过iPOJO使用服务
  • 12.2.4 iPOJO组件生命周期
  • 12.2.5 使用iPOJO实例化组件
  • 12.3 混合和匹配
  • 12.4 小结
  • 第13章 启动和嵌入OSGi框架
  • 13.1 标准启动和嵌入
  • 13.1.1 框架API概览
  • 13.1.2 创建框架实例
  • 13.1.3 配置框架
  • 13.1.4 启动框架实例
  • 13.1.5 停止框架实例
  • 13.2 启动框架
  • 13.2.1 确定安装哪些bundle
  • 13.2.2 干净地关闭
  • 13.2.3 配置、创建和启动框架
  • 13.2.4 安装bundle
  • 13.2.5 启动bundle
  • 13.2.6 启动主bundle
  • 13.2.7 等待关闭
  • 13.3 嵌入框架
  • 13.3.1 内部还是外部
  • 13.3.2 谁在控制
  • 13.3.3 嵌入式框架示例
  • 13.4 小结
  • 第14章 确保应用程序的安全
  • 14.1 使用安全或者不使用安全
  • 14.2 安全:努力尝试使用
  • Java以及OSGi中的安全性
  • 14.3 OSGi特定的权限
  • 14.3.1 PackagePermission
  • 14.3.2 BundlePermission
  • 14.3.3 AdminPermission
  • 14.3.4 ServicePermission
  • 14.3.5 相对文件权限
  • 14.4 使用条件权限管理服务管理权限
  • 14.4.1 条件权限
  • 14.4.2 条件权限管理服务
  • 14.4.3 bundle位置条件
  • 14.4.4 使用ConditionalPermissionAdmin
  • 14.4.5 实现一个策略文件读取器
  • 14.5 数字签名的bundle
  • 14.5.1 学习术语
  • 14.5.2 创建证书和签名bundle
  • 14.5.3 BundleSignerCondition
  • 14.6 本地权限
  • 14.7 高级权限管理
  • 14.7.1 自定义条件概览
  • 14.7.2 基于日期的条件
  • 14.7.3 用户输入条件
  • 14.8 汇总
  • 14.9 小结
  • 第15章 Web应用和Web服务
  • 15.1 创建Web应用
  • 15.1.1 使用HTTP服务规范
  • 15.1.2 使用Web应用规范
  • 15.1.3 标准WAR:Web URL处理程序
  • 15.2 提供和使用Web服务
  • 15.2.1 提供一个Web服务
  • 15.2.2 使用Web服务
  • 15.2.3 发布服务
  • 15.3 小结
  • 附录A 构建bundle
  • A.1 使用Ant构建
  • A.1.1 介绍bnd工具
  • A.1.2 头标识
  • A.1.3 指令
  • A.1.4 变量和宏
  • A.1.5 选择版本策略
  • A.1.6 修复拆分包
  • A.2 使用Maven构建
  • A.2.1 maven-build-plugin
  • A.2.2 刨根问底
  • A.2.3 嵌入依赖
  • A.2.4 部署构件到OBR
  • A.2.5 构建非JAR工程
  • A.3 供你参考的构建工具
  • A.3.1 Eclipse PDE
  • A.3.2 Apache Flex Sigil
  • A.3.3 Eclipse bndtools
  • A.3.4 IDEA Osmorc
  • A.3.5 NetBeans Netisgo
  • A.3.6 Maven Tycho
  • A.3.7 Spring Bundlor
  • 附录B OSGi标准服
  • B.1 核心OSGi服务
  • B.2 Compendium OSGi服务
  • B.3 企业OSGi服务
展开全部

评分及书评

评分不足
1个评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。