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。 |
|
|
|
定义好了文档的位置。 |
|