Topic: 【随笔】迟到的xdoclet2我支持你! --框架介绍

  Print this page

1.【随笔】迟到的xdoclet2我支持你! --框架介绍 Copy to clipboard
Posted by: linux_china
Posted on: 2003-11-23 14:11

如果大家做j2ee相关开发想必对xdoclet有一定的了解,xdoclet开发小组原定于8月底推出xdoclet2,到现在
已三四个过去了,情况不大,sourceforge上的xdoclet 1.3依然如旧,没有改变,但是xdoclet2开发依然在
进行中,我想谈谈自己对xdoclet2的认识,同时也让大家对xdoclet2的认识和对他人的努力的肯定。CoolCool

如果大家 看过 Next Generation of XDoclet 2 Announced (from TSS) 这篇文章一定对xdoclet2有一定的了解,
以下是cjsdn上此篇文章的链接 http://www.cjsdn.com/post/view?bid=8&id=47566&sty=3

xdoclet的核心模块包含以下几个方面:
1 Generama
2 xdoclet sdk
3 velocity and jelly
4 qdox
5 相关plugin

下面是对模块的具体介绍:
1 Generama
Generama是一个可以产生任何文件的框架,此框架中包含jelly和velocity的plugin,文件由各式各样的具体plugin产生。
Generama包含四个核心方面:
I Generama class是框架的入库,框架的调用由此开始,它是picocontainer的扩展。
II Plugin interface为框架的plugin接口,包含核心的实现:VelocityPlugin 和 JellyPlugin,
一般每个具体的plugin都有相对应的一个或几个模板(jelly或elocity模板)
III MetaDataProvider interface 是框架中原数据提供者,它是模板的数据提供者,并为具体的plugin所调用。
IV WriterMapper interface 是框架中的输出的目标,通常是一个文件(FileMapper),它是plugin的具体输出目标。
图式:
原数据--> Generama --> 寻找相应的plugin(含模板) --> 输出目标(文件)

2 xdoclet sdk
xdoclet sdk 主要负责和ant交换、提供原数据、提供输出目标、调用Generama。
在这儿我想提一点的是原数据通过QDoxMetadataProvider从java原文件中获取。QDoxMetadataProvider职能是包
java原文件包含的原信息提供给模板。

3 velocity和jelly
velocity和jelly为编写模板的语言,velocity相信大家都比较了解啦,jelly的具体实现可以参考maven。
在xdoclet2中,veloctiy模板主要负责java文件的生成,而jelly负责xml文件的生成。

4 qdox
qdox是一个高性能的java源文件解析器,通过qdox,你可以从java原文件中就可以得知此文件的结构(以前只能从class文件中获取),
包括:/package/class/interface/method/field,及对应的javadoc tag和自定义tag,注释等。 大家可以参考qdox的资料,
qdox非常容易理解。 qdox在xdoclet中注意是从java源文件分析出原数据,它是原xjavadoc的替代者。
由qdox派生的框架也不少,qdox着实不错。

5 相关的plugin
如果涉及到具体的操作,可能需要相应的plugin,如生成远程接口,ejb-jar.xml文件等。
依据规范,一个plugin的编写包括: plugin接口的具体实现(通常继承VelocityPlugin 或 JellyPlugin),相应的模板,测试类。
这样,一个plugin就完成啦! :)

总结:
xdoclet2的处理步骤:
1 通过qdox,从java源文件获取原数据
2 将原数据、输出目标及相关的指令发送给Generama
3 Generama调用相应的plugin,将原数据、输出目标传给plugin
4 plugin根据原数据、相应模板和输出目标完成文件的生成

感想:
xdoclet的作用想必大家都知道。xdoclet2花费的心思确实不小,框架开发不是件容易的事,而且是这样open source和GPL,
没有money支持,自主开发,精神可贵,虽然xdoclet2的开发一再延迟,但我能理解。
仅已此文档献给这写开发人员,让更多的人了解他们工作。别人写出好东西,我只是介绍一下,有点惭愧啊! BlushBlush

参考资料:
1 xdoclet http://xdoclet.sourceforge.net
2 xdoclet2 http://xdoclet.sourceforge.net/xdoclet2
3 Generama http://xdoclet.sourceforge.net/generama
4 picocontainer http://www.picocontainer.org
5 qdox http://qdox.codehaus.org
6 velocity http://jakarta.apache.org/velocity/
7 jelly http://jakarta.apache.org/commons/jelly/

2.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: alin_ass
Posted on: 2003-11-25 23:24

没中文资料,入门费时间,有空能把自己的经验写写吗

3.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: bjwz
Posted on: 2003-11-26 10:36

现在出的框架太多了,真不知道该用哪个了。

4.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: javadd
Posted on: 2003-11-26 10:38

好东西.

5.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: alin_ass
Posted on: 2003-11-28 23:32

最近发现很多配置单都是xdoclet生成的,比如myeclipse。hibernate映射,

请已经入手的同志给点资料,否则我自己去啃了...

6.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: hitaco
Posted on: 2003-11-30 11:22

用来做配置文件生成不错

7.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: huangfei
Posted on: 2003-12-13 21:08

学习ing

8.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: sailorhero
Posted on: 2003-12-15 16:46

MyEclipse插件和Jboss插件中,附带了使用xdoclet生成部署描述符的例子
可以照着试试!

9.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: bluejava
Posted on: 2003-12-16 14:31

我要看看去.

10.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: jimlaren
Posted on: 2003-12-17 12:39

开发EJB、struts离不开它,它现在是我的左右手了,可是有些功能还没有实现,期待中。

11.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: coddz
Posted on: 2003-12-22 10:42

准备研究之,thank you

12.Re:【随笔】迟到的xdoclet2我支持你! --框架介绍 [Re: linux_china] Copy to clipboard
Posted by: coddz
Posted on: 2003-12-22 10:48

12月19日刚发布xdoclets 1.2


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923