NetBeans vs. Eclipse RCP:插件机制比较2011-08-26 blogjava JiangshachinaNetBeans与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。 | |
| | | 定义好了文档的位置。 |