Hi all,
I have attached a patch file which provides support for Retroweaver at
compilation time in FOP's ant build script. You can grab the latest
Retroweaver from
http://downloads.sourceforge.net/retroweaver/retroweaver-2.0.5.zip. There
is already quite some generics comments which could be easily uncommented in
the FOP source code, so feel free to experiment.
Adrian.
2008/6/5 Jess Holle <[EMAIL PROTECTED]>:
> I can't speak for the broader market but for my usages anything prior to
> Java 5 is "dead wood" and of no interest.
>
> As of October of this year anything prior to Java 5 will be officially
> unsupported by Sun except where you have a paid support contract with them
> (including that for Solaris). Add to that the fact that Java 1.4 is so
> limiting for so many things and Java 5 is supported on even the most odd
> ball platforms (except Java ME, but I don't see FOP on ME...)
>
>
> The Web Maestro wrote:
>
> +1 from me on a new poll for discussion.
>
> On Thu, Jun 5, 2008 at 11:56 AM, Jeremias Maerki <[EMAIL PROTECTED]> <[EMAIL
> PROTECTED]> wrote:
>
>
> +1 to being cautious about dropping support for Java 1.4 without
> consulting the user base first, i.e. +1 for another user poll, though I
> wouldn't do it before October.
> +1 to putting the users' desires above the developers' desires.
> +1 to moving to Java 1.5 when the time is right.
> -0.5 (no veto) to moving to Java 1.5 before Oct 2008.
> +1 to making experiments with Retroweaver (but please not in Trunk).
>
> On 05.06.2008 17:46:07 Vincent Hennebert wrote:
>
>
> Hi Guys,
>
> I would like to raise this topic again: what about switching to Java 1.5
> as a minimum requirement?
>
> The End of Life transition period for Java 1.4 will end on the 30th of
> October 2008 [1]. The next version of FOP (after 0.95) will probably not
> have been released by this time, so we could start using 1.5 features in
> the Trunk.
>
> [1] http://java.sun.com/j2se/1.4.2/download.html
>
> I don't particularly expect any disagreement from a developer point of
> vue (who doesn't want to use 1.5 features?), so in the end this will
> probably depend on the users' reactions, but I thought I'd ask for
> opinions here first.
>
> According to the poll Jeremias made in October 2007 [2], only 14.3% of
> the users would think it's a bad idea to switch to 1.5. A year later the
> percentage will probably have further decreased.
>
> [2] http://wiki.apache.org/xmlgraphics/UserPollOct2007
>
> I guess a new poll will still be necessary. Or we could base it on lazy
> consensus: "If you still want Java 1.4 compatibility, speak up now!".
>
> Anyway, even if 1.4 compatibility is still considered to be required,
> there are tools to convert 1.5 code into 1.4 compatible one. I'm mainly
> thinking of Retroweaver:http://retroweaver.sourceforge.net/
> It's BSD licensed, so IIC there wouldn't be any problem to distribute it
> with FOP. Obviously it would be an (optional) compile-time dependency
> only. I haven't personally tested it, but I'm told it's working pretty
> well and it seems to be well maintained. Of course I'd volunteer to
> introduce it into the build system and see how it works. FWIW, it's
> based on the ASM library, that I've had the opportunity to play with
> a few years ago, and what I can say is that it's a really nice, strong,
> lightweight, easy to use library for manipulating class
> files.http://asm.objectweb.org/
>
> Obviously we wouldn't switch everything to 1.5 immediately. We would do
> it progressively, when fixing bugs or implementing new features. So it
> should be easy to check that the conversion is working properly by
> running the testsuite on a 1.4 jvm, before every commit. Also, we could
> restrain ourselves to features that are directly translatable to 1.4:
> generics, enhanced for loop, autoboxing/unboxing. Most of all we could
> stick to using methods from the Java standard library that are also
> available in the 1.4 version (and, for instance, not use the new
> concurrency package for now).
>
> Just having the possibility to use generics would give us tremendous
> benefits: simpler, cleaner, safer code, more easily understandable, more
> easily maintainable, etc. I can't wait anymore to use those features.
>
> So, WDYT?
> Thanks,
> Vincent
>
>
> --
> Vincent Hennebert Anyware
> Technologieshttp://people.apache.org/~vhennebert
> <http://people.apache.org/%7Evhennebert> http://www.anyware-tech.com
> Apache FOP Committer FOP Development/Consulting
>
>
> Jeremias Maerki
>
>
>
>
>
>
--
Adrian.
Index: build.properties
===================================================================
--- build.properties (revision 662228)
+++ build.properties (working copy)
@@ -11,12 +11,16 @@
## All Jars from the optional lib directory are added used for
## compilation and JUnit tests. Put your jars for additional
## dependencies and tools here.
-# optional.lib.dir = /home/bart/java/lib
+optional.lib.dir = /home/acumiskey/external-libs
## Checkstyle home directory. This is meant to be the top level of the
## checkstyle binary distribution.
# checkstyle.home.dir = /home/bart/stuff/checkstyle-4.0-beta6
+# Retroweaver home directory. This is meant to be the top level of the
+## retroweaver binary distribution
+retroweaver.home.dir = /opt/retroweaver-2.0.5
+
## ===================================================================
## 2. Switches for common tasks
@@ -44,4 +48,4 @@
## Specify an alternate directory to scan for user supplied
## hyphenation pattern files.
-# user.hyph.dir = /home/bart/offo
\ No newline at end of file
+# user.hyph.dir = /home/bart/offo
Index: build.xml
===================================================================
--- build.xml (revision 662228)
+++ build.xml (working copy)
@@ -151,8 +151,8 @@
<property name="javac.debug" value="on"/>
<property name="javac.optimize" value="off"/>
<property name="javac.deprecation" value="on"/>
- <property name="javac.source" value="1.4"/>
- <property name="javac.target" value="1.4"/>
+ <property name="javac.source" value="1.5"/>
+ <property name="javac.target" value="1.5"/>
<property name="javac.fork" value="no"/>
<property name="junit.fork" value="on"/>
@@ -508,7 +508,7 @@
</target>
- <target name="compile" depends="compile-java, compile-copy-resources" description="Compiles the source code"/>
+ <target name="compile" depends="compile-java, compile-copy-resources, weave" description="Compiles the source code"/>
<!-- =================================================================== -->
<!-- compiles hyphenation patterns -->
@@ -1507,5 +1507,26 @@
</xmlcatalog>
</xmlvalidate>
</target>
-
+
+ <!-- =================================================================== -->
+ <!-- Retroweaver -->
+ <!-- =================================================================== -->
+ <path id="weave-classpath">
+ <fileset dir="${retroweaver.home.dir}/lib" includes="**/*"/>
+ <fileset dir="${retroweaver.home.dir}/release" includes="retroweaver-all-*"/>
+ </path>
+
+ <target name="weave-avail" depends="init">
+ <available property="weave.available" classname="net.sourceforge.retroweaver.ant.RetroWeaverTask" classpathref="weave-classpath"/>
+ </target>
+
+ <target name="weave" depends="weave-avail">
+ <taskdef name="retroweaver" classname="net.sourceforge.retroweaver.ant.RetroWeaverTask">
+ <classpath>
+ <path refid="weave-classpath"/>
+ </classpath>
+ </taskdef>
+ <retroweaver target="1.4" srcdir="build/classes"/>
+ </target>
+
</project>