[英]Eclipse plugin compatibility layer (using fragments?)
我編寫了一個Eclipse插件,它依賴於另一個插件的1.0版(我們稱之為WidgetMaster)。 現在,已經發布了WidgetMaster的2.0版,其中包含了我正在使用的許多類的界面更改。 如何在支持兩個版本的WidgetMaster的同時繼續維護我的插件的一個版本?
到目前為止,我想出的是:
這將是一項重要的工作,因為我目前在我的插件代碼中使用WidgetMaster類。 如果我只依賴於我的Fragment項目中特定版本的WidgetMaster,我將不得不移動並包裝所有這些。 此外,99%的包裝器從版本到版本都是相同的,但我仍然需要將它們復制到每個片段。
這是正確的方法還是有更好的方法來處理這種情況?
如果你真的想為長期范圍的WidgetMaster插件的不同版本提供持續支持,那么適配器模式似乎是正確的方式。
為了縮短支持時間,我會復制插件並利用我的版本控制系統及其合並功能。 我創建了一個使用最新版WidgetMaster的不同分支。 所以我有兩個版本的插件,每個版本都會使用不同版本的WidgetMaster,調用特定版本的API調用。 一旦設置完畢,確保已經通知您的VCS合並解決方案,以便將來的合並不會覆蓋API調用自定義(例如ours
git merge策略)。
這兩種不同的方法在不同的時間都有開銷。 適配器方法具有更大的初始開銷,而VCS方法將更快地設置。 但是一旦實現了適配器,開銷就會很小,而VCS方法總是會產生合並開銷。
作為旁注,我想知道OSGi片段是否真的是您設置WidgetMaster版本的最佳選擇(如果您選擇適配器方法)。 我不是OSGi專家 ,但您可以查看OSGi服務工廠,為您提供正確版本的WidgetMaster 。 顯然有更多的演進方式來完成OSGi的依賴注入: Apache Felix Maven SCR插件 , Blueprint Container , Apache Felix iPojo 。 這個SO問題似乎涵蓋了OSGi中DI的問題。
祝好運! 我想知道你走哪條路,因為我很快就會遇到類似的挑戰!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.