2015-12-08 47 views
0

什麼可能是一個很好的osgi實施下面的情況?如何讓消費者選擇特定的第三方供應商

我有一個通用算法,它分爲多個模塊。這個想法是每個模塊都可以由第三方進行擴展,並具有特定的配置需求。我的主算法主要由用戶配置以選擇包含哪個模塊。由於這個配置文件可能很難寫,所以我想創建一個工作臺來幫助他做到這一點。

我的第一個想法是將我的主算法視爲使用DS的多個模塊提供程序的使用者。用例是:用戶配置他想要使用的主算法和子模塊;那麼當他運行算法時,我希望工作臺創建具有良好配置的主算法服務。但是如果我明白,osgi中的服務被設計爲獨立於提供者。服務對我來說有用嗎?

回答

0

做你想要的他們剛剛描述的方式會導致你很多心痛和問題。相反,我建議你使用更加實用的方法:

  • 在你的包定義你的算法可以擴展
  • 使用的OSGi服務層收集的的實現方式定義接口接口(DS可以在這裏幫助你)
  • 有一個配置類/對象,它定義了特定實例中上述哪些選項被激活
  • 當你執行算法時,從服務層查找必要的服務,使用它們。

另外,如果你打算有一個完整的工作臺,你可以直接使用擴展和擴展點來協調一點。

+0

好的,謝謝。爲了更精確一點,「收集實現」是什麼意思,是否所有模塊都必須在收集器類中實例化?主算法不再是服務?查找是由低級別的osgi api ex:ServiceTracker完成的? – cde

相關問題