commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <phil.ste...@gmail.com>
Subject Re: maven.compile.source was: [vote] Release Commons Jelly 1.0 based on RC3
Date Sun, 26 Jun 2005 04:34:09 GMT
To see if the code generated by 1.3 or 1.4 javac behaved any
differently, I compiled jars using both and ran the math tests against
these jars under 1.3, 1.4.  Tests all passed (once 1.4 dependencies
had been removed from code and tests) and the elapsed time was not
significantly different (no consistent directional difference).  Of
course, this is not a scientific test, though it does support the
hypothesis that compiling math jars, at least, using 1.3 will not
result in degraded performance.

Before I roll an RC, I need consensus on how we should be doing this. 
I see three alternatives, with the PITA level increasing in order:

1.  Don't worry, be happy - just set maven.compile.target=1.3 and use
maven dist under 1.4 (or 1.5) to generate the jars and roll the
distros.

2.  Add the following to project.properties
# Fill in path to build JDK or specify this in local build.properties
# When building distribution jars, should use JDK 1.3
# maven.compile.executable=
maven.compile.fork=true
maven.compile.target=1.3
maven.jar.manifest=MANIFEST.MF
then specify maven.compile.executable in build.properties and add a
MANIFEST.MF file containing one line:
Build-Jdk: 1.3
(maven will merge that one line into the manifest that it generates,
making it correct).

3.  Add a hand-coded build-jar.xml and build the jar with Ant using
.antrc or the command line to set the jdk.  Then pre-goal dist in
maven.xml to replace the maven-generated jar with the ant jar. 
Unfortunatly, I can't get maven to fork a new Ant process (so it picks
up .antrc), so the dist has to be done in two steps.

4.  Abandon maven altogether for the dist, hand-coding the whole mess
in Ant (ugh!)

I am by no means a jdk expert, but from what has been said above, it
looks to me like 1 and 2 both carry some risk (the risk in 2 being due
to lack of classpath control).  It would seem, though, that if the
tests all pass when compiled and run under 1.3 against the 1.4 jar,
the risk in even 1. is small (assuming path coverage is good).

So...which of these is the best, or is there a better way that I have missed?

tia,

Phil

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message