2011-09-02 91 views
0

我們正在編寫一個Eclipse中的JMS庫以用於我們的應用程序。優選地,我們希望這與許多JMS提供者一起工作。在多個提供者的Eclipse Java庫項目中構建依賴關係

所以我們圍繞java接口構建我們的代碼並根據需要創建提供者特定的實現類。

當許多人在一個庫上工作,每個人在某個特定提供者的實現類上工作時,在這樣的項目中構建依賴關係會發生什麼?

假設我有WebSphere MQ併爲該提供者編寫代碼。另一個人爲ActiveMQ寫作。另一個用於其他一些JMS提供商。我們是否應該在構建路徑上擁有相關的jar,或者我們是否應該接受爲其他提供者編寫的代碼構建錯誤。

一些想法,一些有: - 包括提供商的與該項目罐子, - 有獨立的編譯Ant任務,每一個IDE /編程器, - 已經在不同的項目/罐的供應商特定的代碼? ??

以上都不適合我們。 有什麼建議嗎?

謝謝 tpav

回答

0

您提供一個接口(或在這種情況下,你使用JMS接口)從供應商independantly定義的 - 你必須在你的工作空間這個接口來使您的項目編譯。在運行時,您需要提供一個提供程序並進行配置,以便將接口綁定到當前的實現。

要實現這一點,您必須在工作區中提供JMS接口。對於特定的提供商,我建議使用單獨的項目(每個提供商一個),可以根據需要添加執行。

我也建議看看OSGi(特別是服務和/或片段),因爲它支持這種情況下需要的幾個項目,但是,它有一點陡峭(但易於管理)的學習曲線。

+0

因此,如果我理解正確,在第二段中,您建議在單獨的項目/罐中提供特定於代碼的代碼。這意味着爲大部分代碼和較小的jar提供主jar,每個提供者一個,不是嗎? – tpav

+0

基本上,是的。 –

+0

所以你不認爲它的矯枉過正讓每個JMS提供者都有一個單獨的jar,只是針對相關接口的4-5個提供者特定的類/實現? – tpav

相關問題