??? 作者:江南白衣?????

??? 因?yàn)?a target="_blank" _fcksavedurl="http://retrotranslator.sf.net/">Retrotranslator的出現(xiàn),SpringSide終于放心升到JDK5.0,只要用戶在build的時(shí)候選擇war14 task,生成的war就保證仍然100%運(yùn)行在JDK1.4的服務(wù)器上。在最新的retrotranslator 1.0.7 支持下,SpringSide在Tomcat 5.0+JDK1.4上部署成功。

????不能隨意更改運(yùn)行環(huán)境JDK的歷史項(xiàng)目,客戶真金白銀買(mǎi)了不支持JDK5的Weblogic8.1的項(xiàng)目,一般只能看著JDK5的annotation、泛型和EJB3干咽口水,所以上帝說(shuō)要有光,我們有了這個(gè)恩物。

????和以前推薦的Retroweaver一樣,大家直接用JDK5開(kāi)發(fā),如果需要部署到JDK1.4的運(yùn)行環(huán)境,就通過(guò)asm把Class轉(zhuǎn)到JDK1.4的字節(jié)碼。

?但它不僅支持JDK5的新語(yǔ)法,還大量支持JDK5的新增API。

? Retrotranslator的用法很簡(jiǎn)單,可以用命令行、Ant和IDEA插件自動(dòng)轉(zhuǎn)換,http://retrotranslator.sf.net 上講得很清楚,可以轉(zhuǎn)換Jar,也可以轉(zhuǎn)換Class目錄。
???比較特別的是有個(gè)Verify選項(xiàng),能確保你沒(méi)有用到它暫時(shí)還不支持的JDK5 API(記得Classpath里要加入JDK1.4的rt.jar)。

附:springside war14 任務(wù)簡(jiǎn)述
??? war14在打包時(shí),會(huì)調(diào)用/misc/jdk14/build.xml, 為drools,compas,easymock2等幾個(gè)使用了JDK1.5技術(shù)的jar 生成jdk1.4的版本,并為項(xiàng)目的classes 目錄生成JDK1.4的版本,然后用它們替換war中原來(lái)的內(nèi)容即可。

注意用戶可能要自己在/misc/jdk14/build.properties中設(shè)一下jdk1.4的路徑。

build.xml 片斷:

<target?name="jdk14src">
????????
<taskdef?name="retrotranslator"?classpathref="compile.classpath"???????????????classname="net.sf.retrotranslator.transformer.RetrotranslatorTask"/>
????????
<retrotranslator?destdir="classes"?verify="true">
????????????
<src?path="../../springside-bookstore/webapp/WEB-INF/classes"/>
????????????
<classpath?location="${jdk14_home}/lib/rt.jar"/>
????????????
<classpath?refid="compile.classpath"/>
????????
</retrotranslator>
</target>