db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: [VOTE] Require Java 5 (or later) compiler to build Derby
Date Wed, 26 Sep 2007 23:58:25 GMT
Andrew McIntyre wrote:
> On 9/26/07, Rick Hillegas <Richard.Hillegas@sun.com> 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.


View raw message