2012-05-23 59 views
2

升級ServiceMix容器上的庫(FuseESB編譯)的過程是什麼?在ServiceMix上升級庫的步驟

我使用的是使用Spring 3.0.5的Fuse版本4.4.1。新版本的Spring可用,所以,當我想使用它時,我該怎麼做?

那些在startup.properties中直接引用的任務是顯而易見的,但是對於其他人來說,比如Spring呢?我在Google上搜索更新過程描述,但沒有付出努力。你是否已經手動完成了這樣的更新,並且可以寫出除了複製新罐子之外需要完成的工作?

Spring駐留在system/org/springframework目錄中。我可以簡單地轉到那個目錄並將Spring jar替換爲更新的版本嗎?

ServiceMix沒有很好的文檔記錄,我還沒有找到有關此過程的信息。

回答

2

Fuse ESB v4.x堆棧是一個以Karaf爲內核的OSGi容器。它可以像創建基於項目依賴關係構建的特定於應用程序的功能XML一樣簡單,從而避免ESB附帶的預定義功能。

您可能遇到問題的一個方面是試圖添加一個較新版本的「核心」(在startup.properties文件中定義的那些版本)ESB運行時依賴關係,這在OSGi容器中應該完全可以接受。這些軟件包的舊版本雖然定義不明確,但導入只會指定版本包含而不是排除。然後,OSGi容器將查看與包定義的導入包和版本相匹配的所有可用包,而那些沒有排除的包將在包初始化時獲得最高可用版本。例如,如果存在一個對Spring Beans 2.5.6具有較強依賴性的核心包,但所述包僅指定版本= 2而不是版本= [2,3),則所述核心包將從Spring Beans 3捆綁而不是Spring Beans 2.5.6捆綁可能會破壞核心捆綁。

更糟糕的是,有些時候一些包可能會匹配2.5.6包而不是Spring3包,你會得到一個基本上爆炸的跨包含。是的,我見過這個。

基本上,你必須經歷試驗和錯誤。鑑於Fuse ESB提供的所有可能的排列組合,取決於運行時加載了哪些功能,不可能有一本烹飪書來精確定義升級容器所需的步驟。

相關問題