我正在開發多個Eclipse特徵(組成一個可安裝單元的Eclipse插件組),並且我已經得到要求每個特徵都必須具備的能力被停用,或者換句話說,當Eclipse啓動時不會啓動。如何阻止Eclipse特徵在安裝後啓動
我有一個插件,它貢獻的UI(透視,奇才,菜單項等),我嘗試了,只是攔截調用像這樣的插件的啓動方法...
請注意,PluginVerification類正在另一個插件中運行,該插件將在安裝包含要停止的插件的功能時提供。換句話說,我的功能包含插件A,B和C. PluginVerification存在於C中,我想用它來控制插件A和B的啓動。
這裏是插件A和B的Activator類的啓動方法
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
if(PluginVerification.verify(this)) {
super.start(context);
plugin = this;
}
}
如果調用PluginVerification.verify(本)返回false,那麼我不會啓動該插件。這是有效的,因爲這個插件並沒有啓動,但是這個插件貢獻的UI工件仍然顯示出來。例如,這個插件貢獻的嚮導仍然可以通過UI訪問。但是,當您嘗試使用其中的一個時,由於該插件從未啓動而引發NullPointerExceptions。
我希望有人可以幫助我找到更好的地方,真正阻止插件啓動,以便它不會貢獻它的UI工件。我打算提醒用戶他的產品沒有通過驗證,因此無法啓動。我希望用戶感覺功能已經從他的Eclipse環境中消失了。
謝謝您的考慮, 跟蹤
感謝您的鏈接。我一直在閱讀關於p2導演和API的大約一天半的時間。我試圖得到一些工作,以編程方式卸載,但沒有成功。當我得到它時,我會在這裏發佈。 – twindham 2012-03-28 17:30:13