2013-07-03 62 views
0

是否有一種方法可以控制加載fuse esb fabric功能中的OSGi軟件包的順序,以便後來的軟件包依賴於以前軟件包的完整加載?例如,在下面的功能,我想簡單的客戶端模塊,只啓動一次,以前捆綁滿載:保險絲ESB結構功能包加載順序

<features name="simple-service-features"> 
    <feature> 
     <bundle>mvn:com.company/simple-datasource/0.0.0</bundle> 
     <bundle>mvn:com.company/simple-model/0.0.0</bundle> 
     <bundle>mvn:com.company/simple-service/0.0.0</bundle 
     <bundle>mvn:com.company/simple-client/0.0.0</bundle> 
    </feature> 
    </features> 
+0

我不知道Fuse ESB如何管理它的bundle加載,但是從OSGi的角度來看,正確的方法是在啓動**任意**之前始終安裝** ALL **包。如果你這樣做,那麼安裝順序並不重要。 –

+0

有沒有一些鉤子告訴我們什麼時候所有的bundle都被初始化了? – Ellis

+0

OSGi無法告訴你這個,因爲它不知道你打算安裝多少個bundle。您的啓動程序或管理代理會知道它何時完成安裝。 –

回答

0

您可以使用捆綁標籤的屬性中啓動級別的features.xml對OSGI包的開始進行排序。

開始級別與每個包相關聯。開始級別是一個正整數值,用於控制激活/啓動套餐的順序。啓動級別較低的捆綁包在啓動級別較高的捆綁包之前啓動。因此,開始級別爲1的bundle首先啓動,屬於內核的bundle往往具有較低的啓動級別,因爲它們提供了運行大多數其他bundle的先決條件。