Andrew McIntyre wrote:
On 9/26/07, Rick Hillegas <[EMAIL PROTECTED]> wrote:
Mike Matrigali wrote:
If I only have jdk1.5 environment will the build succeed, and if so will
it identify if I have somehow used a jdk1.5 specific library function in
a "non-optional" part of the code?
Hi Mike,
You will still need jdk 1.4 and you will still need to set j14lib in
your ant.properties. That doesn't change. The Java 5 compiler will
object if mandatory code uses a Java 5 feature.
How is optional vs. non-optional code specified? Is this an ant xml
file property in the directory for the code?
Today, by default, all code is mandatory. You have to go out of your way
to make code optional. I think that's a good model and I think we should
stick with this model as we go forward. Today there are special build
targets for the optional JSR169 and JDBC4 code. I think this is a good
model to follow when we start introducing optional code which only runs
on Java 5.
Not to pick nits, but then is this really 'requiring' the Java 5
compiler? If I can still build a workable Derby build with the JDK 1.4
compiler, then it's not really required.
I intend to make the build fail early if the environment isn't at least
at Java 5 level.
Also, it's possible to include JDK 1.5 runtime classes and language
features today, see for example Knut's new buffer manager, although
he's using the jdk16 variable to make his targets optional.
It's a little skanky, don't you think?
If this vote is about allowing jdk15-specific optional build targets
into the build, I don't think we even need a vote for that, as long as
the base level we agree on continues to work.
andrew
Hi Andrew,
This vote has a couple practical consequences:
1) It standardizes the build environment. This is a good thing because
it reduces the number of environment-specific build issues which the
community has to field. That, in turn, will improve the out-of-box
experience for new Derby developers.
2) It reduces the gap between what developers do every day and what they
have to do to volunteer as release managers.
3) It shifts the onus for build problems onto the person who submits the
code. With our other optional code, the onus is on the people who care
about the CDC and Java 6 platforms.
In the long run, the "optional" nature of code should be a run-time
issue based on the capabilities of the runtime platform. It should be
mandatory to build all code. Right now we can't require the building of
the CDC code because of various legal and logistical hurdles. We can't
require the building of the JDBC4 support because not all platforms
(e.g., Mac OS X) support Java 6 yet. But in the long run, it would be
better if build problems surfaced and were fixed as early as possible.
Regards,
-Rick