最新公告
  • 开通终身SVIP,享全站不限量下载次数-云资源-集成各类网络资源-正在更新中-预计更新到5W+文章开通SVIP
  • 文章介绍
  • 评价建议
  • 资源名称:OSGi与Equinox 创建高度模块化的Java系统

    内容简介:

    阅读本书,首先你很快就会使用Eclipse bundle工具创建第一个基于OSGi的系统,进而转向复杂的产品开发。接下来,你将掌握一些用于创建具有特殊模块化、高效性和可维护性系统的最佳实践和技巧。你将了解所有的OSGi声明式服务,以及如何通过这些服务来解决各种现实问题。最后,你会发现所有这些都在本书所提供的完整案例(从早期的原型构建到最终的应用交付)中得以实现。

    资源目录:

    第一部分 简介

    第1章 OSGi、Equinox和Eclipse  2

    1.1  简史  2

    1.2  合作  3

    1.3  实战的模块性和自由性  4

    1.4  平台  4

    1.5  生态系统  5

    1.6  OSGi的来龙去脉  5

    1.6.1  Java的谎言  5

    1.6.2  现状核实  6

    1.6.3  OSGi的寿命  6

    1.7  实践中的OSGi和Equinox  7

    1.8  总结  8

    第2章 OSGi基本概念  9

    2.1  bundle环境  9

    2.2  为何选择OSGi  10

    2.3  bundle剖析  13

    2.4  模块化  14

    2.4.1  导出包  14

    2.4.2  导入包  14

    2.4.3  需要的bundle  15

    2.4.4  强化模块化特性  16

    2.5  模块化设计概念  16

    2.6  生命周期  17

    2.7  协作  18

    2.7.1  服务  18

    2.7.2  扩展和扩展点  19

    2.8  OSGi框架  20

    2.9  安全性  20

    2.10  OSGi框架实现  21

    2.11  总结  21

    第二部分 OSGi示例

    第3章 教程介绍  24

    3.1  何为Toast  24

    3.2  Toast的演变  26

    3.3  开发环境安装  27

    3.4  示例代码  28

    3.4.1  在章与章之间切换  28

    3.4.2  比较  29

    3.5  目标平台设置  30

    3.5.1  预定义的目标  31

    3.5.2  定义目标平台  32

    3.6  通过示例进行学习  35

    3.7  总结  36

    第4章 你好,Toast  37

    4.1  简单的场景  37

    4.1.1  创建工程  37

    4.1.2  Gps  38

    4.1.3  Airbag和IAirbagListener  40

    4.1.4  EmergencyMonitor  41

    4.1.5  Main  43

    4.1.6  运行  43

    4.1.7  检查点  43

    4.2  将Toast划分为Bundle  43

    4.2.1  GPS bundle  45

    4.2.2  安全气囊bundle  47

    4.2.3  紧急情况监视器bundle  47

    4.2.4  启动  49

    4.3  总结  50

    第5章 服务  52

    5.1  转移到服务  52

    5.2  注册GPS服务  54

    5.3  注册安全气囊服务  58

    5.4  获取服务示例代码  61

    5.5  启动  64

    5.6  故障排解  64

    5.7  总结  65

    第6章 动态服务  66

    6.1  动态服务简介  66

    6.2  使用服务追踪器  67

    6.2.1  修改bundle激活器  67

    6.2.2  启动  70

    6.2.3  服务追踪器小结  72

    6.3  使用服务激活器工具包  73

    6.3.1  在目标平台上安装SAT  73

    6.3.2  修改GPS bundle激活器  73

    6.3.3  修改安全气囊bundle激活器  74

    6.3.4  修改紧急情况监视器bundle激活器  74

    6.3.5  启动  75

    6.3.6  SAT小结  76

    6.4  使用声明式服务  76

    6.4.1  修改GPS bundle  77

    6.4.2  修改安全气囊bundle  79

    6.4.3  修改紧急情况监视器bundle  80

    6.4.4  运行  82

    6.4.5  声明式服务总结  83

    6.5  总结  83

    第7章 客户端/服务器端交互  84

    7.1  后台  84

    7.1.1  核心bundle  84

    7.1.2  后台应急bundle  85

    7.2  客户端  88

    7.2.1  信道bundle  88

    7.2.2  紧急情况监视器bundle  92

    7.3  工具类  94

    7.3.1  常量  94

    7.3.2  属性  94

    7.3.3  日志  95

    7.4  运行Toast  95

    7.4.1  运行后台  96

    7.4.2  运行客户端  97

    7.5  总结  97

    第8章 测试  99

    8.1  使Toast具备可测试性  99

    8.2  对Toast进行单元测试  100

    8.2.1  测试方案  100

    8.2.2  编写测试用例  101

    8.2.3  运行单元测试  103

    8.3  系统测试Toast  104

    8.3.1  测试规划  104

    8.3.2  创建测试工具  105

    8.3.3  编写测试用例  107

    8.3.4  运行系统测试  110

    8.4  总结  111

    第9章 打包  112

    9.1  定义Toast产品  112

    9.1.1  创建产品配置  112

    9.1.2  概述页  114

    9.1.3  依赖页  115

    9.1.4  配置页  116

    9.1.5  启动页  116

    9.1.6  运行产品  118

    9.1.7  产品化客户端  118

    9.2  导出Toast  118

    9.3  为其他平台打包  121

    9.4  认真考虑组件定义  123

    9.4.1  版本和版本范围  123

    9.4.2  导出包和友元  124

    9.5  总结  126

    第10章 插件化服务  127

    10.1  分离接口与接口的实现  127

    10.1.1  将Fake Airbag与其接口相互分离  128

    10.1.2  将模拟GPS与其接口相分离  129

    10.1.3  回归测试  129

    10.2  设备模拟  130

    10.2.1  概念  130

    10.2.2  设备模拟器框架  131

    10.3  作为插件式服务的模拟设备  131

    10.3.1  模拟安全气囊  131

    10.3.2  模拟GPS  133

    10.4  运行模拟设备  134

    10.5  总结  135

    第11章 可扩展的用户界面  136

    11.1  Crust  136

    11.1.1  Crust shell  136

    11.1.2  Crust工具  137

    11.2  紧急情况处理  138

    11.2.1  创建可插拔的用户界面  138

    11.2.2  重构紧急情况处理业务逻辑  139

    11.2.3  紧急情况处理用户界面  140

    11.2.4  运行用户界面  141

    11.3  车载气候系统和音响系统  142

    11.3.1  车载气候系统与音响设备  142

    11.3.2  空调和音响屏幕  144

    11.3.3  运行用户界面  144

    11.4  OSGi应用模型  145

    11.5  导航和地图  148

    11.5.1  谷歌地球集成  148

    11.5.2  地图支持  151

    11.5.3  应用可扩展性和导航支持  152

    11.5.4  运行用户界面  152

    11.6  总结  154

    第12章 动态配置  155

    12.1  跟踪场景  155

    12.2  安装跟踪代码  156

    12.2.1  Core Tracking Bundle  156

    12.2.2  后台跟踪bundle  157

    12.2.3  客户端跟踪bundle  157

    12.3  运行基本的跟踪场景  158

    12.4  配置  159

    12.4.1  OSGi的管理控制  159

    12.4.2  客户端跟踪bundle  159

    12.4.3  运行可配置的Toast  161

    12.4.4  具备持久化配置的运行  162

    12.5  总结  162

    第13章 Web门户  163

    13.1  门户  163

    13.2  PortalServlet  164

    13.3  使用服务进行操作查询  165

    13.4  声明门户操作  168

    13.5  白板模式的利与弊  170

    13.6  总结  170

    第14章 使用p2进行系统开发  171

    14.1  Equinox p2 简介  171

    14.1.1  架构  172

    14.1.2  p2元数据——可安装的单元  172

    14.1.3  组件  173

    14.1.4  仓库  173

    14.1.5  模式  174

    14.1.6  指挥者  174

    14.1.7  引擎  174

    14.2  细化Toast结构  174

    14.2.1  使用特性定义产品  175

    14.2.2  后台特性  175

    14.2.3  客户端特性  177

    14.2.4  重构小结  180

    14.3  编写一个配置器  180

    14.3.1  配置器  181

    14.3.2  配置后台  184

    14.3.3  后台小结  184

    14.4  增加一个Web部署页面  184

    14.4.1  创建动作  185

    14.4.2  管理动作  185

    14.4.3  安装卸载动作  186

    14.4.4  安装配置UI  186

    14.5  导出、运行以及配置  186

    14.5.1  引入一个p2仓库  186

    14.5.2  运行Toast后台  189

    14.5.3  创建并配置汽车  190

    14.6  客户端动态部署  191

    14.7  总结  192

    第三部分 进阶篇

    第15章 声明式服务  194

    15.1  声明式服务模型  194

    15.2  常见场景  195

    15.2.1  最简单的组件  195

    15.2.2  引用服务  197

    15.2.3  提供服务  198

    15.2.4  引用和提供服务  199

    15.2.5  立刻激活组件  201

    15.2.6  白板模式  202

    15.2.7  工厂组件  207

    15.3  启动和调试DS应用  213

    15.4  PDE工具  214

    15.5  总结  216

    第16章 扩展  217

    16.1  扩展注册  217

    16.2  扩展点  219

    16.3  扩展  221

    16.4  高级扩展主题  222

    16.4.1  扩展ID  222

    16.4.2  命名扩展和匿名扩展  222

    16.4.3  扩展工厂  223

    16.5  扩展注册机制的生命周期  223

    16.6  动态扩展的应用场景  224

    16.6.1  场景一:没有缓存  225

    16.6.2  场景二:缓存扩展  225

    16.6.3  场景三:缓存对象  227

    16.7  服务与扩展  229

    16.8  扩展注册的神话  231

    16.9  总结  231

    第17章 日志  232

    17.1  日志服务规范  232

    17.1.1  日志级别  232

    17.1.2  记录日志  233

    17.1.3  读取日志  233

    17.1.4  监听日志  234

    17.2  在Toast中使用LogService  234

    17.3  使用LogReaderService  237

    17.4  Toast的LogUtility类  239

    17.5  Equinox的LogService实现  240

    17.6  总结  242

    第18章 HTTP支持  243

    18.1  HttpService  243

    18.2  注册和注销Servlet  245

    18.3  声明式HTTP内容注册  248

    18.4  使用Jetty  248

    18.5  HTTP上下文和JAAS集成  249

    18.5.1  基于HTTP的认证和登录  249

    18.5.2  运行具备安全机制的客户端  252

    18.6  疑难解答  253

    18.6.1  BindException  253

    18.6.2  HttpService在监听哪个端口  253

    18.7  总结  254

    第19章 服务器端  255

    19.1  服务器端和OSGi  255

    19.2  在Web应用中嵌入Toast后台系统  257

    19.2.1  更新产品  257

    19.2.2  Web应用的Root文件  259

    19.2.3  构建Web应用  261

    19.2.4  运行Web应用  262

    19.2.5  疑难解答  264

    19.2.6  参数说明  265

    19.3  OSGi中的远程服务  265

    19.3.1  Eclipse通信框架  266

    19.3.2  远程服务  266

    19.3.3  分布式Toast  266

    19.3.4  远程服务主机  267

    19.3.5  远程服务客户端  268

    19.3.6  服务发现  269

    19.3.7  运行分布式系统  270

    19.4  总结  271

    第20章 发布工程  272

    20.1  什么是PDE构建  272

    20.2  build.properties bundle  273

    20.2.1  控制属性  274

    20.2.2  使用自定义构建脚本  275

    20.3  创建构建器  275

    20.3.1  调整PDE构建的目标  276

    20.3.2  build.properties  276

    20.4  运行构建器  279

    20.5  调整构建  282

    20.5.1  自定义构建脚本  282

    20.5.2  仓库和附加依赖项  283

    20.5.3  从SCM(软件配置管理)系统中提取内容  283

    20.5.4  获取map文件  285

    20.5.5  自动替换版本号  286

    20.5.6  设定版本号  286

    20.5.7  定位和放置根目录文件  287

    20.6  构建附加特征  288

    20.6.1  创建特征构建器  288

    20.6.2  build.properties  288

    20.6.3  运行特征构建  290

    20.7  构建WAR包  291

    20.8  总结  291

    第四部分 参考篇

    第21章 动态性的最佳实践  294

    21.1  动态性与你  294

    21.2  Toast的动态性  295

    21.3  动态性的挑战  296

    21.4  动态性意识  297

    21.4.1  对象处理  298

    21.4.2  bundle监听器  299

    21.5  扩展者模式和BundleTracker  300

    21.6  动态性启用  300

    21.7  启动和停止的动态性  302

    21.7.1  启动级别  303

    21.7.2  正确使用服务  304

    21.7.3  关闭也不总是易事  304

    21.8  总结  305

    第22章 整合代码库  306

    22.1  bundle形式的JAR  306

    22.2  采用注入的方式进行bundle化  307

    22.3  通过包装的方式进行bundle化  309

    22.4  通过引用的方式进行bundle化  310

    22.5  使用bnd进行bundle化  312

    22.6  解决类加载问题  312

    22.6.1  Class.forName()  312

    22.6.2  与上下文类加载器有关的问题  316

    22.6.3  管理JRE类  317

    22.6.4  序列化  318

    22.7  总结  318

    第23章 高级主题  319

    23.1  Equinox控制台  319

    23.2  OSGi中的角色  322

    23.3  bundle的形态  323

    23.4  片段  325

    23.5  单例  327

    23.6  bundle生命周期  328

    23.6.1  生命周期状态  328

    23.6.2  BundleActivator  329

    23.6.3  激活器的弊端  330

    23.6.4  激活器的使用  330

    23.7  bundle激活策略  331

    23.8  控制bundle启动  332

    23.8.1  持久化启动  332

    23.8.2  启用激活策略  333

    23.8.3  osgi.bundles  333

    23.9  类加载  334

    23.9.1  类查找算法  334

    23.9.2  声明导入和导出  335

    23.9.3  导入包与需要的bundle  335

    23.9.4  可选性  336

    23.9.5  use指令  336

    23.9.6  再导出  337

    23.9.7  x-internal和x-friends  337

    23.9.8  引导代理  337

    23.10  配置和运行Equinox  338

    23.10.1  config.ini  338

    23.10.2  可执行程序  339

    23.11  数据区  341

    23.12  总结  343

    第24章 声明式服务引用  344

    24.1  组件XML模式v1.0.0  344

    24.1.1  声明XML的命名空间和模式  344

    24.1.2  元素  345

    24.1.3  元素  347

    24.1.4  元素  347

    24.1.5  元素  348

    24.1.6  元素  349

    24.1.7  元素  349

    24.1.8  元素  349

    24.2  组件的生命周期  351

    24.2.1  满足组件的配置  351

    24.2.2  组件的激活、注销与修改  353

    24.2.3  访问引用服务  355

    24.2.4  组件的即时性  357

    24.2.5  组件属性  357

    24.3  总结  359

    资源截图:

    1.png


    曙光网云资源 » OSGi与Equinox 创建高度模块化的Java系统

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。