模块化Java:静态模块化 - 编程入门网
另外还有更小的定位于嵌入设备的OSGi R3运行时可用(比如Concierge),但本系列 文章只关注OSGi R4。 编译并运行bundle 获得framework.jar之后,把OSGi加入classpath并编译上面的例子,然后将其打包成 JAR:
每种引擎都有shell,命令也相似(但不相同)。为了便于练习,让我们看看如何获得 这些引擎并使之运行、安装和启/停bundle。 一旦引擎启动并运行起来,你就可以安装bundle(由 file:// URL来定位)了,然后 可以使用安装bundle所返回的bundle id,启动或停止该bundle。
尽管所有的shell工作起来大都一样,但命令之间还是有容易混淆的细微差别。有两个 统一console的项目(Pax Shell,Posh)和运行器(Pax Runner)可以利用;OSGi RFC 132则是一个正在进行中的提案,试图标准化command shell。另外,Apache Karaf可以运 行在Equinox或Felix之上,提供统一的shell以及其他特性。尽管使用这些项目或工具进 行实际部署是可取的,但本系列文章还是关注于普通的OSGi框架实现。 如果你启动了OSGi框架,你应该能够安装上面所讲的com.infoq.minimal-1.0.0.jar( 你还可以用链接地址及install命令直接从网站上进行安装)。每次安装bundle,引擎都 会打印出该bundle的数字ID。 在安装好bundle之前不可能知道bundle的ID是多少,这取决于系统中其它bundle的ID 分配情况;但是你可以使用适当的命令罗列出已安装的bundle将其找出来。 模块化Java:静态模块化(3)时间:2011-03-29 infoq Alex Blewitt 译:宋玮依赖 迄今为止,我们只有一个bundle。模块化的一个好处是可以把系统分解为多个小模块 ,在此过程中,减小应用的复杂性。从某种程度上,Java的 package已经做到了这一点: 例如,一个common包有独立的client和server包,他们都依赖于该common包。但是Jetty 最近的例子(client意外地依赖于server)表明做到这一点并不总是很容易。实际上,有 些由OSGi给项目带来的好处纯粹就是强制模块间的模块化约束。 模块化的另一个好处是把''public''包从非public包中分离出来。Java的编译时系统允 许隐藏非public类(在特定包中是可见的),但是不支持更大程度的灵活性。然而在OSGi 模块中,你可以选择哪些包是exported(输出)的,这就意味着没有输出的包对其他模块 是不可见的。 让我们继续开发一个功能,用来初始化URI Templates(与Restlet中使用的一样)。 因为该功能可重用,我们想将其放在一个单独模块中,让使用它的客户端依赖于它。(通 常,bundle不适合这么细粒度的用法,但是其可用于说明工作原理)。该功能将根据一个 模板(比如h |
||||||||||||||||||||||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |