第 10 章 JBoss Developer Studio 集成
Eclipse Guvnor 工具(EGT)为开发人员提供了使用 JBoss Developer Studio 4 读、写、添加和从 JBoss 企业级 BRMS 平台服务器删除资产的界面。EGT 也为开发人员提供了一个和传统的源码控制系统(如 Subversion)类似的界面。
重要
JBoss 只对 JBoss Developer Studio 4 的这个功能提供支持。
BRMS 平台库和 EGT 的目的不是要替换源码控制系统,它为开发人员提供了一种方便的访问方法。
重要
Guvnor 是构建 JBoss 企业版 BRMS 平台的开源项目。Eclipse Guvnor Tools 就是基于此点而开发的。EGT 在任何地方提及的 “Guvnor” 都是指的 "BRMS 平台"。为了避免混淆,本章以后的部分我们将统称 “Guvnor”。
10.1. 功能概述 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
EGT 包含两个视图 - 库浏览器(Repository Explorer)和版本历史(Version History)- 它们是和 Guvnor 库交互的中心点。
"Guvnor Repository Exploring" 视角是我们建议的格式。它可以通过 Open Perspective 对话框( -> -> )来访问。
左侧是 Guvnor Repository Explorer 和 Eclipse Properties 视图,Guvnor Resource History 视图位于底部,而 Eclipse Resource Navigator 位于右侧。Guvnor Repository Explorer 为访问 Guvnor 库资源提供了可浏览的树型格式。Guvnor Resource History 视图显示了库里可用资源的修订记录。
图 10.1. "Guvnor Repository Exploring" 视角
10.2. Guvnor 连接向导 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
打开 Guvnor 视角后,第一个任务是连接连接到 Guvnor 库。这是由 Guvnor 连接向导处理的。这个向导出现在 EGT 里的多个地方(参见下面的详情),但在本节我们只介绍两个最基本的入口点。Guvnor 连接向导可以用 Eclipse 菜单启动:File -> New -> Other -> Guvnor -> Guvnor repository location 或通过 Guvnor 浏览器的下拉菜单:
图 10.2. 连接向导
或者使用菜单按钮:
图 10.3. 连接向导
选择其中一个都将启动 Guvnor 连接向导:
图 10.4. 连接向导
缺省值会出现在 Location、Port 和 Repository 字段。(关于如何修改这些缺省值,请参考下面的 "Guvnor 首选项" 章节。)
当然,你可以在对应的文本框里输入来编辑这些字段。将典型的 Guvnor 库 URL 拖放或粘贴到 Location 字段,如:
http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav
。
URL 里的结果也会被粘贴到对应的字段。选择 ”Save user name and password“ 可以将验证信息(用户名和密码)存储到 Eclipse 工作台的 key-ring 文件里。如果验证信息没有存储在 key-ring 文件里,EGT 将使用会话验证。这表示提供的凭证只能用于 Eclipse 工作台实例的生命周期内。
如果验证信息没有存储在 key-ring 文件里或者它是无效的,当EGT 需要访问 Guvnor 库时它将提示你:
图 10.5. 登录
如果验证失败,EGT 将重试并显示验证失败错误。如果验证失败,你可以重试相同的操作并使用不同的凭证。EGT 在不同的情况下会调用 Guvnor 库,如当决定资源更新是否可用时,所以,如果你使用会话验证方式,根据你执行的行为,验证对话框将在 Eclipse 工作台会话期间多次出现。为了便于使用,我们推荐你将验证信息保存在 key-ring 里。Eclipse 的 key-ring 文件和其他平台如 Mac OS X 和许多 Linux 的 key-ring 文件不同。因此,有时候如果你在 EGT 之外访问 Guvnor 库,key-ring 文件可能无法同步,从而导致验证失败。这令人讨厌,但在这种情况下你应该使用平时的凭证。
Guvnor 连接向导执行完毕后,新的库连接将出现在 Guvnor Repository Explorer 里。然后你就可以扩展树来参看库的内容。
10.3. Guvnor 库浏览器 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
图 10.6. 浏览器
Guvnor 库浏览器视图显示 Guvnor 库内容的树型结构。如上所述,它具有创建 Guvnor 库连接的菜单和工具栏行为。工具栏里的红色 "X" 和菜单条里的 “Delete“ 都可以删除 Guvnor 库连接,而 “Refresh" 菜单则为所选节点加载树型内容。最后,它有大量的工具栏/菜单项支持 “drill-into" 功能:工具栏里是房子(“return to top level/home”)和箭头(go into/back)。当用于深度嵌套的树型结构且你希望专注于树的分支时,Drill-down 是很有用的。
对于 Guvnor 库文件,有大量的操作可以执行。在 Guvnor 库里选择一个文件将导致 Eclipse 属性视图更新该文件的细节:
图 10.7. 属性
双击树里到文件夹(目录)将扩展或收缩该文件夹。双击文件夹里的文件将在 Eclipse 里打开一个只读编辑器,显示该文件的内容:
图 10.8. 文件内容
图 10.9. 文件内容
从 Guvnor 库树里拖动一个文件到 Eclipse 本地项目(如 Eclipse 资源导航器视图)里的文件夹里将在本地 Eclipse 工作区里创建该文件的拷贝。(请注意:在只读编辑器里打开文件时你也可以用 “Save As...” 保存一个本地到可写版本,但这样并不能关联所创建的文件和它的 Guvnor 源。)最后,你可以用 "Show History" 上下文菜单查看所选文件的修订历史记录。(下面将讨论资源历史记录的细节。)
10.4. Guvnor 文件的本地拷贝 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
如“简介”章节里所提及的,EGT 的主要目的是允许使用 Guvnor 库里的资源进行开发。有两个方法可获取 Guvnor 库资源的本地版本:
1. 如上所述,从 Guvnor 库浏览器里拖-放。
2. 如 第 10.6 节 “导入 Guvnor 库资源” 所解释的,使用 “import from Guvnor” 向导。
创建了 Gunvor 库文件的本地拷贝后,EGT 将设置本地拷贝和库里的主文件间的关联。(这个信息保存在本地项目的 “.guvnorinfo” 文件夹里,象所有的元数据,最终用户不应该修改它。)这个关联使得一些操作(如更新和提交)可与 Guvnor 库里的主文件进行同步。EGT 会装饰和主文件关联的本地资源。这种装饰出现在遵循通用导航器框架的 Eclipse 视图里,如 Eclipse 资源导航器和 Java 软件包浏览器。下图显示了 Eclipse 资源导航器里的装饰:
图 10.10. 导航器
注意文件图像右上角的 Guvnor 图标装饰以及附加在文件名后的 Guvnor 修订记录细节。(你可以修改这些东西的存在与否和位置。细节请参考下面的 “Guvnor 首选项” )这里我们可以看到,例如,“simpleRule.drl” 和 Guvnor 库资源关联而本地拷贝基于版本 3,并带有 “7-15-2008, 15:37:34“ 时间戳。而文件 “deleteTest.txt” 没有和 Guvnor 库文件关联。通过上下文菜单到 ”Properties“ 部分,你可以在标准的 Eclihttps://translate.jboss.org/webtrans/clear.cache.gifpse 属性页面找到关于关联的更多细节:
图 10.11. 属性
EGT 为标准的 Eclipse 属性对话框贡献了一个属性页面,上面显示了它的内容。其中包括专门的 Guvnor 库、库里的位置、版本(日期/时间戳)和版本号码。
10.5. 用于本地 Guvnor 资源的行为 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
EGT 提供大量的行为(通过文件的“Guvnor”上下文菜单)以用于处理文件,包括那些和 Guvnor 库主拷贝相关和不相关联的。这些行为是:
每种行为都将在下面进行描述。
- 更新(Update)
- 添加(Add)
- 评论(Commit)
- 显示历史(Show History)
- 比较版本(Compare with Version)
- 切换版本(Switch to Version)
- 删除(Delete)
- 断开连接(Disconnect)
更新(Update)行为:
更新(Update)行为可用于一个或多个没有和 Guvnor 库主拷贝同步的 Guvnor 资源。这些资源将不会进行同步,因为(1)发生了本地的修改,或(2)Guvnor 库里的主拷贝已经发生了变化。执行更新动作将用当前的主拷贝替换本地文件内容(相当于“切换版本(Switch to version)”到最新的版本)。
添加(Add)行为:
添加(Add)行为可用于和 Guvnor 库主拷贝没有关联的一个或多个本地文件。选择 Add 行为将启动 “Add to Guvnor” 向导:
图 10.12. 添加(Add)行为
向导的第一页将请求你选择目标 Guvnor 库以及创建一个新的 Guvnor 库连接(第二页和上面描述的 Guvnor 连接向导的相同)。选择了目标 Guvnor 库以后,向导将要求你选择添加所选文件的文件夹位置:
图 10.13. 添加(Add)行为
在这里我已经选择了
mortages
文件夹为目的地。点击 “Finish” 添加所选文件到 Guvnor 库并创建本地文件和 Guvnor 库文件间的关联。这个向导不会允许你在添加新文件时覆盖现有的 Guvnor 库文件。
比较版本(Compare with Version)行为:
Compare with Version 行为对于和 Guvnor 库相关联的文件是启用的。它首先启动一个向导并要求选择需要比较的版本(和本地文件内容):
图 10.14. 比较
选择了版本后,这个行为打开 Eclipse 比较编辑器(只读):
图 10.15. 比较
这个编辑器使用 Eclipse 标准的比较技术来显示两个版本的不同。如果没有不同,编辑器将不会被打开而是弹出一个对话框说明没有任何不同。
切换版本(Switch to Version)行为:
Switch to Version 行为对于和 Guvnor 库相关联的文件是启用的。它首先提示选择版本:
图 10.16. 版本
选择了版本后,Switch to Version 行为将用所选版本替换本地文件的内容。
删除(Delete)行为:
删除(Delete)行为对于和 Guvnor 库相关联的文件是启用的。通过对话框进行确认后,Delete 行为删除 Guvnor 库里的文件并和它相关联的本地元数据。
断开连接(Disconnect)行为:
断开连接(Disconnect)行为对于一个或多个和 Guvnor 库相关联的文件是启用的它删除和 Guvnor 库相关联的本地元数据。
Guvnor 资源历史视图:
Guvnor 资源历史视图应该提供所选文件的修订历史记录,对于本地文件和 Guvnor 库都是一样。这个视图的初始状态是:
图 10.17. 历史
Guvnor 资源历史视图是由本地的 “Guvnor” 上下文菜单或 Guvnor 库浏览器里的文件的上下文菜单里的 “Show History” 选项决定的。执行了这个动作后,Guvnor 资源历史视图将进行更新以显示修订历史记录:
图 10.18. 历史
在这里我们看到文件 “simpleRule.drl” 有三个修订版本。双击某个版本(或选择上下文菜单的『打开(只读)』)将打开一个带有版本内容的 Eclipse 只读编辑器。(请注意:在只读编辑器里打开文件时你也可以用 “Save As...” 保存一个本地到可写版本,但这样并不能关联所创建的文件和它的 Guvnor 源。)
10.6. 导入 Guvnor 库资源 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
除了从 Guvnor 库浏览器视图里拖放单个文件以外,EGT 也包括一个可复制多个文件到本地工作区的向导(以及设置和 Guvnor 库的关联)。在 Eclipse Import 、Guvnor、Resource from Guvnor 和 Eclipse File、New、Other、Guvnor、Resource from Guvnor 菜单选项里,这个向导都是可用的。(请注意:在这两个位置这个向导是相同的,只是为了方便用户在不同的类别里使用这个功能。)向导的第一页将要求选择源 Guvnor 库并创建新的 Guvnor 库连接(第二页和上面描述的 Guvnor 连接向导相同)。
图 10.19. 导入
选择了源 Guvnor 库后,向导会提示你选择资源:
图 10.20. 导入
最后,选择本地工作区里的目标位置:
图 10.21. 导入
之后向导将从 Guvnor 库复制所选的文件到本地工作区。如果目的地已经存在相同名字的文件,向导将使用 Eclipse 的标准 “prompt for rename” 对话框:
图 10.22. 复制
10.7. Guvnor 插件的首选项 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
EGT 在提供
图 10.23. 首选项
首选项有两个类别:Guvnor 库连接和本地 Guvnor 库资源装饰。
Guvnor 库连接的首选项
对于 Guvnor 库连接,你可以设置两个首选项,它们是在创建新连接时使用的。第一个是缺省的 Guvnor 库 URL 模板,通过简单地修改部分字段(如主机名),它使得创建多个类似的连接更为容易。第二个是是否在 Eclipse 平台 Key-ring 里保存验证信息,在缺省情况下你应该启用它。使用 Guvnor 库 URL 模板时,是否在 Eclipse 平台 Key-ring 里保存特定的验证信息实例是可以在创建连接时决定的。也就是说,这两个首选项都已经简单设置为了合理的缺省值。
本地 Guvnor 库资源装饰的首选项
EGT 提供的首选项的第二个类别处理和 Guvnor 库资源相关联的本地资源的外观。既然 Guvnor 库不是 SCM 的替代物,且 Eclipse 里的 SCM 工具倾向于装饰本地资源,能够控制 EGT 装饰其本地资源以避免和 SCM 软件包冲突是很有用的。在首选项页面的 “File Decoration” 部分里,你可以选择装饰图标的位置(top right, bottom right, top left, bottom left),或者你可以选择不显示它。在 "Text" 部分,你可以格式化附加到文件名上的 Guvnor 元数据:当本地文件已经发生变动但还未提交会 Guvnor 库时是否显示一个标记(>)。是否显示修订版本号码。是否显示日期/时间戳。在点击了 “Apply” 或 “Ok” 后,对这些首选项的任何修改都是立即生效的。