BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Eclipse Ganymede:深入PDE(Plugin Development Environment)

| 作者 Ryan Slobojan 关注 0 他的粉丝 ,译者 宋玮 关注 0 他的粉丝 发布于 2008年6月26日. 估计阅读时间: 10 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

作为预定6月25日发布的Eclipse Ganymede的一部分,Infoq将推出一系列Eclipse子项目的相关报道。今天,我们将探讨的子项目是插件开发环境(Plugin Development Environment——PDE)(目前正处于3.4版)。Infoq采访了PDE的技术领导人及Code9的主要顾问——Chris Aniszczyk,以了解更多关于PDE及其功用的信息。

Aniszczyk谈到了3.4中几个新的特性和更新,包括:

  • API工具——API工具提供了一个构造器(builder),可以报告工作区(workspace)中的API使用和二进制兼容性错误。你必须对想让API工具报告错误的项目进行配置,而且你必须定义一个API基线用以便与工作区项目进行比较。比如,针对于Eclipse 3.4版,当我们开发Eclipse 3.4时,平台团队使用API工具在Eclipse 3.3.2上定义了一个基线。API工具能够报告兼容性错误、@since标签缺失、不正确的版本号以及许多以前我们不得不手工检查的其它API问题。现在所有这些工作都在工作台(workbench)内顽完成,因此在开发的时候你就可以看到错误。比如,你给一个接口增加了一个方法但却忘记增加版本号,API工具能帮助你又快又好地解决这个问题!查看API工具wiki可以获得更多信息。
  • 打开插件制品——如果你使用Eclipse,你极可能用过JDT让人敬畏的打开类型快捷方式(Ctrl+Shift+T)。在PDE中我们提供了一个类似的功能。打开插件制品(Open Plug-in Artifact)(Ctrl+Shift+A)使你能够快速跳转到插件、扩展、扩展点及输出包中。你可以尝试一下,我肯定你会喜欢它!我现在每天都在用它!
  • 用户援助工具——对那些喜欢在他们的Eclipse应用中提供用户援助的人们,如果他们听到PDE提供了一个新的目录编辑器和帮助上下文编辑器这个消息,一定非常高兴。你现在可以选择使用一个更好的编辑器,而不是像以前一样用手工编辑这些文件。另外,我们还为3.4改进了Cheat Sheet编辑器!
  • Plug-in Spy——当我试图在SDK中查找要重用的功能时,以及查找特定选定类的时候,感觉非常不便。这个功能就脱胎于此。例如,试想一下,你正在一个RCP项目上工作,并想在你的应用中重用log视图。在过去,你必须深入代码和扩展以找到ID和其他东西。Plug-in Spy可以使你通过简单地选择工作台中感兴趣的插件并从中获取有用信息就可以完成这一工作。例如,在本例中,你可以选择log视图并调用Plug-In Spy。你获得的是类似于如下的信息:实现该视图的实际类、这个类来自哪个插件、当前所选的类等等。
  • Plug-in Registry——PDE里的[这个]视图使你可以快速地看到你当前正在运行应用的状态。例如,你将看到当前活动并运行着的插件(与之相对的是不活动且没有运行的插件)。你还能很快看到并查询这些插件的可用扩展及扩展点。在3.4中,我们还在这个视图上增加了“Show Advanced Operations(显示高级操作)”的概念。启动、停止和诊断bundle都可以在视图中方便的进行。如果你需要一个能够很快看到你的基于Eclipse应用的状态的视图,这个视图就是为你准备的!

当被问及使用PDE开发除Eclipse插件之外的其它东西时,Aniszczyk说道:

最近的几版中,PDE已经提供支持开发OSGi独立应用。但是,我们在广告方面做得不好。它隐藏在“New Plug-in Project(新建插件项目)”向导中,但是我们允许你指定一个特定Eclipse版本或一个OSGi框架。我认为部分问题是由于我们的命名问题,不是吗?在Eclipse中,我们习惯使用插件(plug-in)这个词,而在OSGi社区中他们习惯使用bundle这个词。在PDE的特定领域内,我们试图适应这种措辞,但是目前还没有完成。例如,如果你创建一个插件(Plug-in)项目,并且指定了一个OSGi环境,你将注意到OSGi框架启动配置使用了“bundles”这个术语而不是“plug-ins”。OSGi社区如果知道了PDE计划在3.5中为Declarative Services提供工具,应该会感兴趣的……在PDE孵化器中,我们正在开展一些令人兴奋的工作

Aniszczyk还进一步深入讨论了使用PDE开发OSGi应用的细节问题,说明用来指定Eclipse版本的相同机制也可以用来指定OSGi框架,除不同的Eclipse版本之外,PDE也提供了独立OSGi应用的模板。Aniszczyk指出通过管理classpath和利用已有的Eclipse开发套件,PDE简化了OSGi开发。PDE本身就支持Equinox,而且也为其它OSGi框架如Knopflerfish和Felix提供了扩展点。Aniszczyk还表达了与各种OSGi框架开发者共同工作的意愿,以把他们的成果集成到PDE中去,而且还说PDE团队一直愿意帮助那些想要做出贡献的人。

Aniszczyk还讨论了PDE社区,尤其是关于他帮助启动的BugDay所取得的成就。针对PDE已经有超过100个已贡献的BugDay bug得到了修正,同时Aniszczyk对PDE团队通过IRC所提供的一点点帮助就能产生这么大的成果感到吃惊。Aniszczyk还提到社区成员帮助PDE最好的方式就是浏览Bugzilla中BugDay bug的列表并表示有兴趣提供帮助——从那里,PDE团队将非常乐意通过IRC或Skype提供援助,这符合PDE的座右铭——“我们做工具,而我们的业务就是使用工具的人”。

当被问到PDE如何集成到E4或受E4怎样的影响时,Aniszczyk说道:

PDE显然涉及到了E4。E4当前的焦点是帮助构建一个平台,但是众所周知,平台最终需要工具。这儿有几个当前我们正在E4中探索的方向:
  • 多语种插件——目前,所有插件都是用Java编写的。考虑使用其它语言如JavaScript以及考虑使用Web作为目标环境都是E4所关注的。我一直有个梦想——使用其它语言如JavaScript、Groovy或Scala编写Eclipse插件。为了使之变为现实,PDE将要做更多的事情。要使得多语种插件成为现实,PDE中当前还没有足够的钩子(hook)可用,而且运行时也必须支持。
  • 单一源和目标平台——如果你使用Eclipse并开发插件,你或许熟悉目标平台的概念。在PDE中,目标平台简单的表示你开发所依靠的一组插件。例如,默认情况下,你所做的开发是针对正在运行的环境的。在E4中,可以指定不同的环境,如Web、设备和其它什么平台。为理解我所表达的意思,可以查看一下Eclipse EBERT样例,它示范了一个基于Eclipse的应用,该应用可以运行在客户端、服务器端、以及嵌入式设备上,其分别使用Eclipse富客户端平台(Eclipse Rich Client Platform——RCP)、Eclipse富Ajax平台 (Eclipse Rich Ajax Platform——RAP)、嵌入式富客户端平台(embedded Rich Client Platform——eRCP)。开发这些类型应用的过程有点困难,因为在PDE中,目标平台的概念是针对每个工作区的。所以你需要把目标平台切换到你所指定平台的一组插件上。在E4中,PDE将准备支持在每项目级设置目标平台,类似于你在每项目级可以指定JRE的方式。
  • 供应(p2)——现在Eclipse对更新插件有了一个完全修订过的方式——p2,这里有很多机会可以创造一些奇特的工具。在3.4中,PDE团队经过辛勤劳作更新了现存的关于老更新系统的工具,使其能够适应p2。E4(甚至是3.5)的下一步将使这些工具不仅仅适应p2,还要与p2系统很好的集成,这样我们就可以做一些以前无法做到的事情。比如,想象一下,一个按一下按钮就可以进行发布的世界,而不是现在产生更新站点的方式。还可以想象一下,只需点击一个插件的右键就可以把它部署到你想要的地方……或许有一个自托管工作台……或许有一个通用的运行应用。期待着在e4甚至在3.5中能够看到p2工具领域的好东西出现。
最后,有许多与E4和PDE非常相关的令人兴奋的工作正在进行中。我一直认为,你可以构建真正够酷的东西,但是如果没有好的工具,采用它将是一件痛苦的事情。

查看英文原文:Eclipse Ganymede: An in-depth look at PDE (Plugin Development Environment)

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不错. by Liu Xing

不错.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT