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裏再詳細描述。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章