The white board pattern handler

The white board pattern handler
本处理器的目标是简化白板架构的实现。这个架构风格和extender架构风格非常接近,但是使用服务代替了bundle。

*The whiteboard pattern
一个白板模式基于2种角色:
〉一个消费者检索特定的服务或有特殊标志的服务
〉被检索的服务

实现一个白板模式和实现一个扩展模式一样复杂。它需要动态跟踪服务。被检索的服务具有很高的动态性,它们可在任何时候达到、离去或者更改。

在OSGi规范中定义的几个服务使用了白板模式,比如Device Access Manager



*Using the handler
首先,你需要在组件类型描述中配置处理器:

<ipojo xmlns:wbp="org.apache.felix.ipojo.whiteboard">
     <component 
          className="org.apache.felix.ipojo.test.FooWhiteBoardPattern"
      >
        <wbp:wbp 
          filter="(my.property=1)" 
              onArrival="onArrival" 
              onDeparture="onDeparture" 
              onModification="onModification"
         />
       
         <provides/>
      </component>

注意:这个处理机是一个白板处理器。因此它使用“org.apache.felix.ipojo.whiteboard”命名空间。
描述后,你可以实现组件了。在描述文件中指定的方法,将会在匹配的服务到达或者离开、修改时分别
被调用。modification callback是可选的。一个匹配的服务是通过服务参考对照确定的过滤被侦测到的。

过滤可以是服务接口或者服务的属性。

你可能感兴趣的:(apache,Access,osgi)