OSGI Blueprint入门之一

    Blueprint是OSGI的一个规范,它来源于spring dm.目前主要有aries和gemini两套实现,本文以aries的实现为基础。大致来说Blueprint是一个OSGI的IOC规范。对于熟悉spring的朋友来说,应该会十分容易上手。

    Blueprint也是以xml文档来构建应用,但它也有采用Annotation的方式,我们在此只介绍xml的方式。

    在Bundle里,这个xml默认的位置在OSGI-INF/blueprint下,也可以在manifest.mf里指定其它位置上的xml文档。

    当一个包含blueprint xml文档的bundle install并resolved,并且active后,Aries blueprint container就会开始解析这个文档。

    在处理这些xml文档的过程中,bundle还会有个blueprint的状态,区别于bundle的状态。这些状态包括Graceperiod,created,fail。其中created就是blueprint container已经解析完文档,并且文档中mandatory的依赖都得到满足了,这时blueprint的应用已经组装完毕。而Graceperiod则是应用正在组装中。fail是当blueprint无法解析xml文档或者是mandatory的依赖在超时时间内未能获得满足。

    在spring的应用中,通常生成或组装的是bean或者bean工厂。而在Blueprint里,还可以发布和组装OSGI service。而OSGI service的动态性也要求Blueprint container的组装过程是动态的,这方面,我们在后续的blog里再详细描述。
   

猜你喜欢

转载自killko.iteye.com/blog/1780155