這個東西其實(shí)在以前的OSCAR項(xiàng)目中是有的,而現(xiàn)在處于Apache沙箱中OSGi R4的實(shí)現(xiàn)Felix也準(zhǔn)備構(gòu)建這個了,構(gòu)建OBR其實(shí)和構(gòu)建Maven 2、Ivy這些的Repository沒什么區(qū)別,解決的都是方便其他的使用者通過倉庫直接下到所需要的東西(OBR中提供的是Bundle、Maven2、Ivy中是jar),最大的好處在于下載的Bundle或jar會根據(jù)其元數(shù)據(jù)信息去下載其所依賴的其他的Bundle或jar,這就大大方便了使用者了。
構(gòu)建OBR自然就對OSGi實(shí)現(xiàn)框架提出了要求,框架中必然需要有支持遠(yuǎn)程下載的方式的命令(如FELIX現(xiàn)在定義的obr),而在OSGi的規(guī)范中目前是沒有這部分的東西的,也許在將來會考慮加上吧,這個無所謂,只要有框架去實(shí)現(xiàn)了,其他的框架即使沒實(shí)現(xiàn),也可以通過安裝上這個Bundle來獲取這樣的功能,其實(shí)我覺得這個就像我以前所想的,一站式解決方案,很方便,呵呵,假設(shè)我以后需要安裝一個CMS,就可以象現(xiàn)在N多的linux中敲一個apt -get bluedavy-cms,哈哈,多爽,當(dāng)然,最好就是還有網(wǎng)站提供能夠讓我備份我系統(tǒng)中所有軟件的配置,以后我要裝機(jī)器就只要跑到這個網(wǎng)站選擇bluedavy的windows 2003或者bluedavy的Ubuntu,只要網(wǎng)絡(luò)允許的情況下很快就可以裝好了,呵呵......
另外一個問題是自動解決依賴的問題,大家知道,jar包中是沒有寫需要依賴其他什么jar包的信息的,Maven 2、Ivy為了解決這個問題都是在外部增加了xml文件來描述jar包的依賴,這個帶來的好處就是假設(shè)我們現(xiàn)在要在項(xiàng)目中使用hibernate,就只需要直接從Maven 2、Ivy的倉庫中直接下Hibernate就可以了,而至于hibernate所需要依賴的包Maven 2和Ivy則會自動的下載過來,對于OSGi的Bundle來說就比較好辦了,因?yàn)镺SGi的Bundle本來就在Manifest.MF文件中描述了當(dāng)前Bundle的依賴信息,所以對于構(gòu)建OBR來說不會太困難,而Maven 2、Ivy的倉庫在構(gòu)建的時候的麻煩就在于手動寫那個標(biāo)識jar包元數(shù)據(jù)的xml文件。
OBR的構(gòu)建還是很有必要的,鑒于FELIX的進(jìn)度,TPF將先實(shí)現(xiàn)遠(yuǎn)程下載Bundle的這個功能.......