2012-01-10 29 views
0

我有一個RCP應用程序,它有幾個插件定義在它的數據和功能分離。插件不以應用程序開始

我需要所有插件在應用程序啓動時啓動(其中一些插件需要註冊網絡事件)。我選中「在加載其中一個類時激活此插件」框,而不選中此框時查看xml,看起來這實際上是一個延遲加載指示器。

如果我將插件添加到.product中的配置頁面,我會爲每個激活器獲取ClassNotFoundExceptions。

當RCP應用程序啓動時,讓插件自動啓動的最佳方式是什麼?

回答

1

我寧願該插件有其他插件的最低知識

在這種情況下,你可以做的Eclipse做什麼:定義啓動的擴展點,並讓需要啓動所有的插件擴展該擴展點。

+0

我還沒有做很多擴展,我發現這個教程,展示瞭如何創建它們: http://www.vogella.de/articles/EclipseExtensionPoint/article.html#extensionpoints_overview 有沒有辦法做到這一點,沒有每個客戶需要實現一個什麼也不做的界面? – 2012-01-11 17:39:02

+0

@SamBrinck是的,當然。只有擴展點的必需屬性是名稱和ID。在Eclipse幫助中查看[Plug-in Extension Points](http://help.eclipse.org/indigo/topic/org.eclipse.pde.doc.user/guide/tools/editors/manifest_editor/extension_points.htm)。 – 2012-01-11 18:33:16

0

我會打開「激活...當它的一個類被加載」,然後只是確保你在啓動時觸摸你需要的所有類(你將不得不做任何事情來獲得你的代碼去)。我認爲有一些在啓動時強制插件激活的不推薦使用的方法,但您不需要去那裏。一般來說,只要在插件中調用一個類將會導致它被加載並在一切正確設置時啓動,您不需要做任何特殊的事情。

您的應用程序可能有由Eclipse啓動所謂的一個類(如或類似的東西(有在引導許多掛鉤),隨便挑了一個有意義並調用你的代碼。

+0

我有一個啓動器插件,負責工作臺交互。我寧願那個插件對其他插件瞭解最少,但如果我找不到其他插件,我會這樣做。謝謝 – 2012-01-11 01:17:57

+0

您可以考慮的另一件事是通過修改'config.ini'文件並將它們添加到'osgi.bundles'屬性來顯式啓動插件。 – 2012-01-11 02:51:21