NetBeans vs. Eclipse RCP: 插件機制比較
本文是JavaLobby上的一篇小文,作者對NetBeans和Eclipse的插件機制進行了一些比較,如有興趣,可以看看。(2008.10.15最后更新)
NetBeans與Eclipse處理擴展點及擴展的方式是不同的。讓我們看看這些不同之處。請注意,本文僅針對那些對這兩個平臺的插件機制都具備相當知識的人。
NetBeans Platform:
定義擴展點 |
創建一個接口,并將它置入一個公共模塊包中。 |
創建擴展 |
創建上述接口的實現,并通過layer.xml文件將它注冊到虛擬文件系統中。 |
讀取可用的擴展 |
使用org.openide.util.Lookup類去獲取上述接口實現的實例。
|
Eclipse RCP:
定義擴展點 |
創建一個擴展點的描述符方案,該方案定義了擴展點的元素與屬性,以及這些元素之間的關系。
可用的屬性類型為:boolean,string,java,resource和identifer。可向該方案的任何部分添加文檔。
最后,向plugin.xml文件 注冊你的擴展點。 |
創建擴展 |
根據上述方案,在plugin.xml文件中創建一個子部分,在此處向屬性賦予值。如果屬性類型為java,則也要創建被引用的Java類。 |
讀取可用的擴展 |
使用org.eclipse.core.runtime.IExtensionPoint獲取擴展的列表。從每個擴展中獲取IConfigurationElement的列表:
每個IConfigurationElement對應于plugin.xml文件中的一個XML標簽。 |
NetBeans平臺 |
Eclipse RCP |
優點 |
缺點 |
優點 |
缺點 |
非常簡單,易于學習 |
擴展點沒有定義它自己:沒有關于是哪個公共模塊接口作為擴展點使用的信息。 |
擴展點清晰地定義了它自己:快速查看jar文件,你就能立即知道該插件提供了哪些擴展點,以及它們是由哪些元素組成的。 |
比較復雜,需要更多時間去學習 |
|
使用的查找名也未作定義 |
有許多屬性類型:可以在XML文件中描述特定的結果。 |
|
|
擴展和其它的內容都混寫在layer.xml文件中:難以確定該模塊用于哪些擴展。 |
可生成擴展的多數組成部分,見PDE。 |
|
|
|
定義好了文檔的位置。 |
|