WEB开发网
开发学院软件开发Java 使用 Blueprint Container 规范构建 OSGi 应用程序... 阅读

使用 Blueprint Container 规范构建 OSGi 应用程序

 2009-11-26 00:00:00 来源:WEB开发网   
核心提示: 例如,清单 7 中的引用的选择过滤器为 (&(objectClass=java.io.Serializable)),使用 Blueprint Container 规范构建 OSGi 应用程序(10),而清单 9 中的引用的选择过滤器为 (&(objectClass=java.io.Seriali

例如,清单 7 中的引用的选择过滤器为 (&(objectClass=java.io.Serializable)),而清单 9 中的引用的选择过滤器为 (&(objectClass=java.io.Serializable)(osgi.blueprint.compname=myAccount)(mode=shared))。


清单 9. 服务选择示例
  <reference id=”serviceReferenceTwo”        
       interface=”java.io.Serializable” 
       component-name=”myAccount” 
       filter=”(mode=shared)”/> 

可用性

在 Blueprint Container 继续进行初始化之前,服务引用管理器需要至少一个服务匹配其选择条件。这一要求是由 availability 属性控制的。availability 属性可以有两个值:

optional匹配选择条件的服务可能存在,也可能不存在。 mandatory至少存在一个匹配选择条件的服务。

默认情况下,假定使用 mandatory 可用性。通过使用 blueprint 元素的 default-availability 属性,可以为 Blueprint XML 中的所有服务引用管理器修改默认可用性设置。

具有 mandatory 可用性的服务引用管理器(具有一个匹配服务)被认为是可以满足需求的。具有 optional 可用性的服务引用管理器总是被认为可以满足需求,即使它不具备任何匹配的服务。Blueprint Container 初始化将被延迟,除非所有强制服务引用管理器都得到满足。

必须要注意的一点是,只有在 Blueprint Container 初始化期间才考虑 mandatory 可用性。完成初始化后,随着服务在任意时刻的变化,强制服务引用将不能被满足。

清单 10 展示了一个具有 mandatory 可用性的引用管理器的示例。

上一页  5 6 7 8 9 10 

Tags:使用 Blueprint Container

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接