7. Using XDoclet EJB Facilities
在继续
Trader EJB
开发过程的第二过程前,我们需要介绍配置和使用
XDoclet EJB
功能。采用
XDoclet
技术的好处是标签处理器能够分析标注有
XDoclet
信息的源代码文件和生成独立的源文件和配置资源。
XDoclet
依赖于一个
ANT
脚本来指定他的执行环境和代码生成任务。一个
XDoclet
标签由注释模型组成,此模型映射
1
或多个注释同
ANT
子任务交互。
MyEclipse
允许你去配置和定制子任务来执行和它的默认操作值。
默认的,
MyEclipse EJB
工程不是自动配置使用
XDoclet
功能的。这部分展示着几步骤,使用和配置
XDoclet
支持的
firstejb EJB
工程和执行源于
Trader EJB
依赖的源代码和部署组件
XDoclet
代码生成。
7.1 XDoclet EJB Configuration
我们开始通过添加标准的
EJB
XDoclet
配置给
firstejb
工程。这部分最后的目标是产生
XDoclet
配置,它将用于产生
ANT
脚本用于
MyEclipse
执行生产附加
EJB
部署
TraderEJB
而所需文件。
7.1.1 Basic EJBDoclet Configuration
-
打开
MyEclipse
工程属性页。右键单击
firstejb
工程在包浏览视图然后选择
Properties >
MyEclipse-XDoclet
(
查看图
8)
Figure 8. MyEclipse-XDoclet configuration page
-
选择
Add Standard
按钮
.
-
选择
Standard EJB
配置然后
OK
如图
9.
附加的重新配置
XDoclet
模块由
MyEclipse
所提供,你可以创建你自己的自定义的
XDoclet
配置。完整自定义
XDoclet
模块的过程超出了本文档的范围。
Figure 9. Adding Standard EJB configuration
一旦
Standard EJB
模块已经被添加到列表中,用鼠标选择它来显示这个
doclets
的内容。注意
ejbdoclet
出现在左手列表的下边。子
doclets
在
ejbdoclet
包含的下边,包含需要的和可选的子任务。许多子任务对于一个如
Trader EJB
这样的简单的无状态的绘话
Bean
都不可用。
Figure 10. Default subtasks for Standard ejbdoclet
-
删除不需要的子任务通过右击每个子任务,他们都在左部底下面板,然后选者
Remove.
-
继续这一过程直到剩下如图
11
所示的字任务。在配置中的每一项重新描绘
EJB XDoclet
子任务。有一个链接详细说明
@ejbdoclet
和它的子任务,在
Resources
部分
.
-
(
可选的
)
如果一个非默认的源文件夹在工程创建时被指定,以一定要更新工程相关路径属性通过元素
ejbdoclet > destDir
,
deploymentdescriptor > destDir
和
fileset > src
任务
.
选择每个这些元素在左部下面的面板,那么回顾修改这些各自的属性在右下部分的面板。
Figure 11. XDoclet EJB subtasks required by Trader EJB
-
通过在
Build
页中选择来配置这个工程的
XDoclet
的编译文件规则。
注意
:
如果这时一个新建的工程,编译规则被设置成默认的规则,那么你可以跳到第
9
步。
选择
Use dynamic build specification
规则如图
12
所示。
如果你用一个已存在的项目而它已包含
XDoclet
配置,那么你可以选择删除不需要的
xdoclet-build.xml
文件。它将不再需要。关于这点规则更加详细的说明请看表
2
。默认的新的工程被设置使用
dynamic build policy.
你可以须改默认设置通过
Window > Preferences > MyEclipse > XDoclet > Build
属性页。
Figure 12. XDoclet Build File Policy Configuration
表
2 - Description of XDoclet build policies
Field
|
Description
|
用动态编译规范
[
推荐
]
|
指示
XDoclet
处理过程为动态的说明它的编译规范,这个规范是直接来自于项目的
XDoclet
配置属性。没有
xdoclet-build.xml
文件被创建或被需要。这项规则是被推荐的因为当枪的工程的编译环境是常常被使用。
|
用
xdoclet-build.xml
文件
|
指明
MyEclipse-XDoclet
属性惯例为生成一个新建的
xdoclet-build.xml
这发生在一个工程的
XDoclet
配置属性被跟新和保持时,并且
XDoclet
使用这个
xdoclet-build.xml
文件在代码生成过程中。
警告
:一个工程的
xdoclet-build.xml
文件将被当此工程的
XDoclet
配置信息被修订时产生的新版本覆盖。
这条原则仅仅用在你必须手动管理
xdoclet-build.xml
文件时。
|
-
选择
OK
.
在完成
XDoclet
配置过程将被保存在本地一个名叫
.
xdoclet
的文件中。另外如果
"Use xdoclet-build.xml file"
原则被使用,那么
MyEclipse
将产程一个叫
xdoclet-build.xml
的
文件,里面存储你的新的
XDoclet
设置并
且文件包存在跟路径下。
这将完成基础的
XDoclet EJB
配置过程。下一个部分目标是如何配置
XDoclet EJB
子任务为了你特殊的应用服务器。
7.1.2
Configuring Application Server XDoclet (optional)
XDoclet
是能够生成应用程序服务器的特殊部署描述符的。这部分的目标是通过
JBoss
应用程序服务器的子标签来配置一个
XDoclet @ejbdoclet
。
XDoclet
所支持的应用程序服务器列表可以在弹出菜单中查看到如图
13
。
注意
:
下边部分我们的目的是发布
firstejb
到本地的
JBoss 3.2
服务器上。因此我们将用
JBoss
子任务。
-
右击
ejbdoclet
然后从菜单中选择
Add.
-
在
doclet
子任务中选择
jboss
,
接着选择
OK
如图
12
所示。
-
Figure 13. Adding JBoss subtask to ejbdoclet
-
如图
14
所示摄者如下的
jboss
属性。
Version =
3.2
destDir =
src/META-INF
Figure 14. Setting jboss subtask attributes
-
选择
OK
.
Back to Top
7.2 Running XDoclet Code Generation
一旦你完成配置你的工程的
XDoclet
设置,你可以在任何时候运行
XDoclet
的代码生成。代表的你可以在每次改变
XDoclet EJB
的配置或应用服务器设置或当你修改任何
EJB bean
的实现类中
XDoclet
声明后去执行
XDoclet
。
当
Trader EJB
还没有被新建的
XDoclet-
声明的业务方法扩展时,现在一个好的机会去执行
XDoclet
在
firstejb
工程中,然后测试一下新的
XDoclet
设置。
.
1.
为了载
firstejb
上运行
XDoclet
右击工程然后在菜单中选择
MyEclipse >
Run XDoclet (
查看图
15).
Figure 15. Starting XDoclet code generation on EJB project
-
监视
Console
视图在
xdoclet-build
脚本中的反常信息输出。
图
16
描述了
XDoclet
在
TraderBean
类被加工的过程信息。
Figure 16. Console output of Run XDoclet action
在
XDoclet
完成后,
firstejb
工程应该包含新版本的的
Trader
和
TraderHome
接口和
ejb-jar.xml
和
jboss.xml
部署描述符。图
17
描述了初始生成这个新工程的资源。
注意
:
当我们在第
5
步创建
TraderBean.java
类文件时,我们指明它的
Java package
名为
com.genuitec.trader.ejb
并且强调了报名义
".ejb"
结尾。这是因为标准的
EJB XDoclet
包置换
(packageSubstitution)
子任务创建一个相应的
Java
包以
".interfaces"
结尾并且添加了生成的
EJB
和
Home
接口到其中。在我们的例子包
com.genuitec.trader.interfaces
将被创建并且它将包含
Trader EJB
和
TraderHome
接口。如果你不按照这个包命名习惯那么
XDoclet
设置的默认的一些文件将不会被创建。
Figure 17. Contents of EJB project before and after XDoclet generation