OSGi实战

OSGi实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , [美] , [美] , ,
2013-01
版次: 1
ISBN: 9787115300676
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 468页
字数: 721千字
正文语种: 简体中文
91人买过
  •   OSGi是一种标准技术,用于创建高度模块化的Java应用。利用OSGi,无需停止运行整个系统就可以安装、启动、停止、更新或卸载组件。Oracle、BEA和IBM都在积极推动OSGi技术的采用。
      《OSGi实战》作者既来自开发一线,又参与了OSGi规范的制定,这就保障了全书内容的权威性。《OSGi实战》全书历时两年多方才完成,凝聚了作者们多年来的宝贵经验和辛勤汗水。内容分三部分,涵盖OSGi核心规范解读、OSGi规范的实际应用及相关高级主题,系统、全面、深入地阐述OSGi的重要特性,揭示了大量鲜为人知的技术细节。此外,本书还通过极具实用价值的实例示范了OSGi的各种应用,能够满足各个层次读者的需求。通过大师的指引,相信读者一定可以轻松实现“入门-进阶-精通”三级跳,在OSGi世界里创造出无限可能。   Richard S. Hall,是Apache Felix框架开发组重要成员。2000年以后Richard参与了OSGi的开源工作并于2004年加入OSGi联盟。Richard还是Apache软件组织成员,目前在Oracle的GlassFish项目组工作,帮助解决OSGi的相关问题。

      Karl Pauls,是Apache Felix Framework Security Provider项目的实现者,Apache Felix框架开发组的核心成员。Karl还是Apache软件组织成员,参与开发过多个Apache项目以及其他的开源项目。目前Karl是Luminis的一位研究员。 第一部分  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  bundles激活器的清单文件条目
    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  追踪内存泄漏
    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  安全:努力尝试使用
    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  使用Conditional- Permission Admin
    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
    附录B  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  bundles激活器的清单文件条目
    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  追踪内存泄漏
    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  安全:努力尝试使用
    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  使用Conditional- Permission Admin
    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
    附录B  OSGi标准服务
  • 内容简介:
      OSGi是一种标准技术,用于创建高度模块化的Java应用。利用OSGi,无需停止运行整个系统就可以安装、启动、停止、更新或卸载组件。Oracle、BEA和IBM都在积极推动OSGi技术的采用。
      《OSGi实战》作者既来自开发一线,又参与了OSGi规范的制定,这就保障了全书内容的权威性。《OSGi实战》全书历时两年多方才完成,凝聚了作者们多年来的宝贵经验和辛勤汗水。内容分三部分,涵盖OSGi核心规范解读、OSGi规范的实际应用及相关高级主题,系统、全面、深入地阐述OSGi的重要特性,揭示了大量鲜为人知的技术细节。此外,本书还通过极具实用价值的实例示范了OSGi的各种应用,能够满足各个层次读者的需求。通过大师的指引,相信读者一定可以轻松实现“入门-进阶-精通”三级跳,在OSGi世界里创造出无限可能。
  • 作者简介:
      Richard S. Hall,是Apache Felix框架开发组重要成员。2000年以后Richard参与了OSGi的开源工作并于2004年加入OSGi联盟。Richard还是Apache软件组织成员,目前在Oracle的GlassFish项目组工作,帮助解决OSGi的相关问题。

      Karl Pauls,是Apache Felix Framework Security Provider项目的实现者,Apache Felix框架开发组的核心成员。Karl还是Apache软件组织成员,参与开发过多个Apache项目以及其他的开源项目。目前Karl是Luminis的一位研究员。
  • 目录:
    第一部分  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  bundles激活器的清单文件条目
    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  追踪内存泄漏
    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  安全:努力尝试使用
    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  使用Conditional- Permission Admin
    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
    附录B  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  bundles激活器的清单文件条目
    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  追踪内存泄漏
    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  安全:努力尝试使用
    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  使用Conditional- Permission Admin
    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
    附录B  OSGi标准服务
查看详情
系列丛书 / 更多
OSGi实战
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
OSGi实战
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
OSGi实战
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
OSGi实战
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
OSGi实战
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
OSGi实战
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
OSGi实战
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
OSGi实战
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
OSGi实战
图解HTTP
[日]上野·宣 著;于均良 译
OSGi实战
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
OSGi实战
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
OSGi实战
算法图解
袁国忠 译
相关图书 / 更多
OSGi实战
OSPF协议原理与功能拓展
马海龙
OSGi实战
OS X与iOS内核编程
[澳]Ole Henry、[澳]Douglas Clarke 著;贾伟 译
OSGi实战
OSAHS基础知识和新进展
张佐 编
OSGi实战
OS X Mavericks: The Missing Manual (Missing Manuals)
David Pogue 著
OSGi实战
OSGi in Action:Creating Modular Applications in Java
Richard Hall;Karl Pauls;Stuart McCulloch;David Savage
OSGi实战
OS X Yosemite: The Missing Manual
David Pogue 著
OSGi实战
OSPF协议剖析
[美]莫艾著胡光明 译
OSGi实战
OSS行业应用及解决方案汇编与分析
杨庆丰 编;尹涛;杨宁
OSGi实战
OSx86:CreatingaHackintosh[OSx86:Hackintosh建立]
Peter Baldwin 著
OSGi实战
OSGi in Depth
Alexandre de Castro Alves
OSGi实战
OSPF网络设计解决方案
托马斯
OSGi实战
OSGi原理与最佳实践
林昊、曾宪杰 著
您可能感兴趣 / 更多
OSGi实战
猎物《纽约时报》畅销书作者史黛西·威林厄姆 Goodreads年度悬疑惊悚小说 LibraryReads月度值得关注图书
[美]史黛西·威林厄姆著
OSGi实战
纳博科夫短篇小说全集(纳博科夫精选集V)
[美]弗拉基米尔·纳博科夫著
OSGi实战
糖与雪:冰淇淋与我们相遇的五百年
[美]耶丽·昆齐奥(Jeri Quinzio) 著, 邹赜韬、王燕萍 译
OSGi实战
从一到无穷大(爱因斯坦亲笔推荐的科普入门书,清华大学校长送给新生的礼物;世界著名物理学家、宇宙大爆炸学说的先驱)
[美]乔治·伽莫夫 著;栗子文化 出品;有容书邦 发行
OSGi实战
海外中国研究·寻找六边形:中国农村的市场和社会结构(海外中国研究丛书精选版第四辑)
[美]施坚雅 著;徐秀丽 译;史建云
OSGi实战
明信片(《断背山》作者又一力作,荣获福克纳文学奖,49张明信片背后是100种离奇人生)
[美]安妮·普鲁 著;黄宜思 译
OSGi实战
超大规模集成电路物理设计:从图分割到时序收敛(原书第2版) [美国]安德·B.卡恩
[美]安德·B.卡恩
OSGi实战
小屁孩日记(平装双语版)35-36奶狗肠大作战和一日校长记 全2册
[美]杰夫·金尼(Jeff Kinney)
OSGi实战
(守望者·传记)身体的疯狂朝圣:田纳西·威廉斯传
[美]约翰·拉尔 著;张敏 凌建娥 译
OSGi实战
哥白尼
[美]欧文·金格里奇(Owen Gingerich)
OSGi实战
玻璃底片上的宇宙
[美]达娃·索贝尔 后浪
OSGi实战
闲散一些也无可厚非
[美]艾莉森·孙 著;李昂 译