空间站

北极心空

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
作者:江南白衣     

    因为Retrotranslator的出现,SpringSide 1.0终于放心升到JDK5.0,并保证仍然100%可以运行在JDK1.4的服务器上。

    不能随意更改运行环境JDK的历史项目,客户真金白银买了不支持JDK5的Weblogic8.1的项目,一般只能看着JDK5的annotation、泛型和EJB3干咽口水,所以上帝說要有光,我们有了这个恩物。

    和以前推荐的Retroweaver一样,大家直接用JDK5开发,如果需要部署到JDK1.4的运行环境,就通过asm把Class转到JDK1.4的字节码。
   但它不仅支持JDK5的语法,还支持JDK5的新增API。
   下午试验了一下,把用了大量JDK5特征的EasyMock移植到JDK1.4,一行代码未改就通过了。正是由于这点,SpringSide终于下定决心升级,毕竟使用JDK5的框架越来越多,如果困守JDK1.4必然受到越来越多局限。既然现在有了完全兼容的保证,就升了吧。 本来这么一样东西应该是由Sun发行的,Java的开源社区强悍得吓人。

   Retrotranslator的用法很简单,可以用命令行、Ant和IDEA插件自动转换,http://retrotranslator.sf.net 上讲得很清楚,可以转换Jar,也可以转换Class目录。
   比较特别的是有个Verify选项,能确保你没有用到它暂时还不支持的JDK5 API(记得Classpath里要加入JDK1.4的rt.jar)。在SpringSide的build.xml里已加入了这个verfiy  target,确保代码仍然可以在JDK1.4上运行。(实践把springside部署回Tomcat5.0+JDK1.4环境,除了Spring cgilib式的AOP Proxy与泛型的反射函数有冲突外需进一步研究外,其它一切工作正常)

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=694204

Retrotranslator JDK1.4 兼容指南

主页:http://retrotranslator.sf.net

1.概述

因为Retrotranslator的出现,SpringSide终于放心升到JDK5.0,只要用户在build的时候选择war14 task,生成的war就保证仍然100%运行在JDK1.4的服务器上。在最新的retrotranslator 1.0.7 支持下,SpringSide在Tomcat 5.0+JDK1.4上部署成功。

    不能随意更改运行环境JDK的历史项目,客户真金白银买了不支持JDK5的Weblogic8.1的项目,一般只能看着JDK5的annotation、泛型和EJB3干咽口水,所以上帝說要有光,我们有了这个恩物。

    和以前推荐的Retroweaver一样,大家直接用JDK5开发,如果需要部署到JDK1.4的运行环境,就通过asm把Class转到JDK1.4的字节码。

 但它不仅支持JDK5的新语法,还大量支持JDK5的新增API。

  Retrotranslator的用法很简单,可以用命令行、Ant和IDEA插件自动转换,http://retrotranslator.sf.net 上讲得很清楚,可以转换Jar,也可以转换Class目录。
   比较特别的是有个Verify选项,能确保你没有用到它暂时还不支持的JDK5 API(记得Classpath里要加入JDK1.4的rt.jar)。

war14 task 简述

war14在打包时,会调用/misc/jdk14/build.xml, 为drools,compas,easymock2等几个使用了JDK1.5技术的jar 生成jdk1.4的版本,并为项目的classes 目录生成JDK1.4的版本,然后用它们替换war中原来的内容即可。

注意用户可能要自己在/misc/jdk14/build.properties中设一下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>
posted on 2007-08-10 18:36 芦苇 阅读(713) 评论(0)  编辑  收藏 所属分类: JAVA其他

只有注册用户登录后才能发表评论。


网站导航: