OSGi在ServiceMix4中的應(yīng)用
ServiceMix4介紹
ServiceMix4是一個令人期待的ServiceMix新版本,它不僅支持JBI規(guī)范,更重要的是支持OSGi。與ServiceMix3.x相比,對OSGi的支持是它最大的特色。它包括Kernel和NMR兩個項(xiàng)目。Kernel是基于OSGi實(shí)現(xiàn)框架Flex實(shí)現(xiàn)的,它是ServiceMix4的基石;NMR構(gòu)建于Kernel之上,它是JBI規(guī)范的具體實(shí)現(xiàn)。
51CTO編輯推薦:OSGi入門與實(shí)踐全攻略
ServiceMix4架構(gòu)圖
關(guān)于ServiceMix4和Kerne可以參考相關(guān)文檔。
由于ServiceMix4同時支持OSGI和JBI,所以它支持OSGI和JBI這2種部署。部署在ServiceMix3.x上的組件絕大多數(shù)可以直接部署在ServiceMix4中。
下面來看看基于OSGI部署的組件如何部署在ServiceMix4中。
初試ServiceMix4
準(zhǔn)備工作
下載ServiceMix4
下載地址:http://servicemix.apache.org/SMX4/download.html
安裝ServiceMix4
直接將下載后的文件解壓即可。
啟動
直接雙擊/bin文件夾中的servicemix.bat,片刻之后,就可以啟動ServiceMix4。
啟動后的界面如下:
基于OSGI的最簡單實(shí)例
該實(shí)例實(shí)現(xiàn)了將一個文件夾中的xml文件拷貝到另外一個文件夾中。
代碼片段如下:
- <bean class="org.apache.servicemix.common.osgi.EndpointExporter"/>
- <file:poller service="honnom:pollFile" endpoint="pollEndpoint"
- file="honnom/inBox/" targetService="honnom:sendFile" >
- < SPAN>file:poller>
- <file:sender service="honnom:sendFile" endpoint="sendEndpoint"
- directory="honnom/outBox/">
- < SPAN>file:sender>
代碼介紹
使用該bean完成poller和sender的OSGI注冊。
定義一個poller,周期性地從文件夾honnom/inBox中讀取xml格式的文件。
定義一個sender,將接收到的文件存放在文件夾honnom/outBox中。
部署
直接將file-osgi.xml拷貝到ServiceMix4的安裝目錄的deploy下。
運(yùn)行
ServiceMix4部署完file-osgi.xml后,會在/bin文件夾下生成兩個子目錄:
honnom/inBox和honnom/outBox??截愐粋€xml格式的文件到inBox中,幾秒鐘后該文件會被轉(zhuǎn)移到outBox中。
總結(jié)
可以看出ServiceMix4的部署更加簡單,可以直接通過OSGI部署xml文件,而不需要將xml打包成sa(.zap文件)。當(dāng)然也可以將xml打包成sa,以JBI組件的方式進(jìn)行部署。
【編輯推薦】